password.js RESTful身份验证

如何使用RESTful API(而不是通过Web界面)使用passport.js处理身份验证(例如本地和Facebook)?

与使用典型的res.send({data:req.data})相比,要处理从回调到RESTful响应(JSON)的数据传递,设置初始的/ login端点以重定向到Facebook(/ login不能是通过AJAX访问,因为它不是JSON响应-它是通过​​回调重定向到Facebook的)。

我已经找到https://github.com/halrobertson/test-restify-passport-facebook,但是我很难理解。

此外,passport.js如何存储身份验证凭据?服务器(或者它是服务?)由MongoDB支持,我希望凭据(pw的登录名和盐化哈希值)存储在此处,但是我不知道passport.js是否具有这种功能。

村村L2020/03/24 18:11:18

我非常感谢@Miguel在每种情况下的完整流程说明,但我想在Facebook身份验证部分添加一些内容。

Facebook提供了一个Javascript SDK,您可以使用它直接在客户端上获取访问令牌,然后将其传递到服务器,并用于进一步从Facebook中提取所有用户信息。因此,您基本上不需要任何重定向。

此外,您也可以为移动应用程序使用相同的API端点。只需使用用于Facebook的Android / iOS SDK,在客户端上获取Facebook access_token并将其传递给服务器即可。

关于所说明无状态性质,当使用get_access_token生成令牌并传递给客户端时,此令牌也存储在服务器上。所以它和会话令牌一样好,我相信这使它有状态吗?

就是我的两分钱

JinJin小宇宙2020/03/24 18:11:18

我发现这是一篇很棒的文章,可以帮助您进行身份验证:

  • 脸书
  • 推特
  • 谷歌
  • 本地认证

简易节点身份验证:设置和本地