我四处搜寻,但找不到这个问题的满意答案。
我有一个流星网站,用户可以在其中登录并创建内容。我还想创建一个能够与网站交互的手机应用程序,并且我希望用户登录手机应用程序并访问网站上的相同内容。很正常。
我创建了一个基本的 REST API,用于使用 Meteorite 包访问集合HTTP.publish
。它可以在没有任何用户信息(无身份验证)的情况下工作,但现在我想使用userId
GET 方法和集合的 Meteor.allow 规则中访问当前用户。
因此,我目前正在努力解决如何在 REST 请求上告诉 Meteor、用户的 id,即使只是在测试时也是如此。我以为我能得到Accounts._storedLoginToken
浏览器中的有效用户并使用它来进行 CURL 测试。就像是
curl -H "X-Auth-Token: asdklfjasldfjlsadkjf" -H "Content-Type: application/json" -d '{"name":"A Name","description":"Testing description"}' http://localhost:3000/api/places
我尝试了这个,但没有高兴,我得到了 403,至少还不错。
我的问题是这样的:
- 创建的令牌是否特定于客户端(即使用主机 url 或其他内容进行哈希处理)?
- bcrypt 是否改变了方式
X-Auth-Token
用来?如果不是,我在curl命令中做错了什么。
- DDP 是创建有效令牌的唯一方法吗?或者我可以创建一个 API 调用来在服务器上创建令牌,甚至现在只传递纯文本凭据?
eg /api/login?user=shane&pwd=qwerty
=>返回token
我可以在curl请求中使用。
我真的很坚持这一点,所以任何能指引我正确方向的事情都将不胜感激。我还注意到http.publish
还没有创建登录/注销方法,所以也许没那么容易。
几天前,我开始开发一个具有类似身份验证要求的应用程序。我发现Differential的RESTstop2最近在0.6.0版本中升级了他们的身份验证支持,以支持Meteor中新添加的Bcrypt加密。
您只需将用户名和密码作为 URL 参数或正文发送,如下所示:
curl --data "password=testpassword&user=test" http://localhost:3000/api/login/
服务器将返回以下内容(如果凭据正确):
{ success: true, loginToken: "f2KpRW7KeN9aPmjSZ", userId: fbdpsNf4oHiX79vMJ }
在您向服务器发出的每个请求中,包含 loginToken 和 userId 作为标头。
你应该检查一下:
Docs: http://github.differential.io/reststop2/ http://github.differential.io/reststop2/
Github: https://github.com/Differential/reststop2 https://github.com/Differential/reststop2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)