【发布时间】:2016-09-27 16:52:51
【问题描述】:
所以我需要创建一个 REST API 来为 IOS 应用程序提供功能。我们允许用户仅使用普通帐户或 Facebook/Google 登录进行注册。
我最近一直在阅读 OAuth,我想我了解在我的情况下(当用户使用 Facebook/Google 登录)在我的应用程序上注册帐户时如何使用 OAuth 的过程:
- 我向各种社交服务提供商(例如 FB/Google)注册了我的 IOS 应用程序。我最终得到了安全存储在后端的客户端 ID/客户端密钥。
- 现在用户单击应用上的社交登录按钮,然后将用户重定向到社交网站进行登录并授予我的应用使用其社交帐户的权限。
- 社交 oauth 提供商将使用授权码将用户重定向回我的服务器。
- 一旦我的服务器获得授权码,我将使用该授权码、客户端 ID 和密码(或所需的任何其他特定凭据)从社交 oauth 提供程序检索访问令牌。
- 现在我有了用户的访问令牌,可以在一段时间内使用他们的社交资源(耶)。
- 获得他们的社交访问令牌后,我还会发出一个生成的访问令牌,供应用在向我的 REST api 发出请求时使用(该应用从现在起只会与我的 REST api 通信)。
我的问题:
- 上述过程是一种好的做法吗?
- 假设用户从应用程序(而不是他们的社交帐户!)中注销。我仍然拥有他们的社交访问令牌,但我销毁了另一个令牌我发给他们以使用我的 REST api。现在用户回来使用社交登录(例如 Fb/Google)登录我的应用程序。我将如何重新验证这些用户?我知道我不需要用户再次提供权限,但我怎么知道他们是 Fb/Google 的合法用户并且在我的服务器端也有帐户?成功登录后,Fb/Google 会向应用程序提供什么,以便我可以发回我的服务器说:“是的,这个用户是 Fb/Google 的合法社交用户。”。在上述注册过程中,社交 oauth 提供者将提供一个授权码。在这种情况下我会得到什么(后续登录)?
基本上,我需要找到一种方法,将我的 REST API 的访问令牌重新颁发给成功重新登录的应用程序的 FB/Google 用户。
【问题讨论】:
-
您的应用程序是否已通过 Google 和 Facebook 身份验证获得 Apple 批准?
标签: ios facebook authentication oauth