我想创建一个使用oauth对我的服务器进行身份验证的应用。 我的问题是这将如何运作?
我的客户端将使用HTTPS与Facebook进行通信并获取访问令牌。然后应该将它发送到我的服务器端进行身份验证?我的服务器应该将令牌保存在数据库中?它如何验证令牌?
答案 0 :(得分:3)
这将如何运作。吗
当客户端需要授权访问有关用户的某些信息时,浏览器(用户代理)会将资源所有者重定向到OAuth授权服务器。在那里,用户面临一个身份验证对话框(如果用户已经过身份验证,则不会显示此对话框),之后会向他或她显示一个授权对话框,说明客户端请求的权限,以及需要访问的信息或代表他或她需要采取的行动。
访问令牌应该将它发送到我的服务器端进行身份验证?或者服务器应该将令牌保存在db?
中根据您的描述,我建议使用服务器端登录流程。 - 因此令牌已经在您的服务器上,并且不需要从客户端传递。如果您使用的是非加密连接,则可能存在安全风险。
(在用户成功登录后,使用HTTPS将用户的ID令牌发送到您的服务器。然后,在服务器上,验证ID令牌的完整性,并从ID令牌的子索引中检索用户的ID。可以使用以这种方式传输的用户ID来安全地识别后端上当前登录的用户。)
- 见
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2#login
如何验证令牌?
您可以点击此链接,获取应用的分步解决方案。 Facebook access token server-side validation for iPhone app