我正在尝试在我的应用上实施Facebook身份验证。我注意到我的API后端 - Loopback已集成passport。我不明白这是什么意思?
据我所知,身份验证发生在客户端。并且应该将FB发出的令牌传递给后端,以生成会话cookie /令牌以与我的应用程序的API进行通信。所以后端应该只验证FB用户令牌,而不是实际验证用户。
答案 0 :(得分:0)
Passport提供了一套全面的策略,支持使用用户名和密码进行身份验证。当您管理多个社交网络登录时,这肯定会派上用场。
环回做的是,它会创建一个UserIdendity
模型并将其连接到UserModel
,从而在他/她不存在的情况下创建User
。
My View是服务器端身份验证比客户端更可靠。大多数社交网络都推荐服务器端身份验证
答案 1 :(得分:0)
我已经设法使用护照在我的应用程序中实现fb身份验证,并且比几天前有了更好的理解。
我假设由于用户必须在某个时刻输入用户名和密码,因此身份验证必须在客户端进行。
然而,服务器仍然可以处理该过程。而不是客户端与FB或其他提供商通信应用程序ID和访问令牌,服务器可以代表他们这样做。
而不是用户看到在客户端身份验证期间发生的弹出窗口,服务器将用户重定向到Facebook(或其他提供商)并传达应用程序ID和秘密。成功登录后,facebook会将一个授权代码传递给app服务器,该代码可以直接与access_token交换,并将用户重定向回另一个URL。
Passport使上述过程易于实施。
对我来说,这种方法似乎更安全,因为用户永远不会看到您的应用ID或他们自己的fb access_token。此外,通过服务器方法而不是客户端(60天与几小时)发布令牌的有效期要长得多。