如何使用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是否具有这种功能。
我非常感谢@Miguel在每种情况下的完整流程说明,但我想在Facebook身份验证部分添加一些内容。
Facebook提供了一个Javascript SDK,您可以使用它直接在客户端上获取访问令牌,然后将其传递到服务器,并用于进一步从Facebook中提取所有用户信息。因此,您基本上不需要任何重定向。
此外,您也可以为移动应用程序使用相同的API端点。只需使用用于Facebook的Android / iOS SDK,在客户端上获取Facebook access_token并将其传递给服务器即可。
关于所说明的无状态性质,当使用get_access_token生成令牌并传递给客户端时,此令牌也存储在服务器上。所以它和会话令牌一样好,我相信这使它有状态吗?
就是我的两分钱