gpt4 book ai didi

ios - 从 Google/Facebook 帐户重新验证用户身份

转载 作者:行者123 更新时间:2023-12-01 23:11:03 24 4
gpt4 key购买 nike

所以我需要创建一个 REST API 来为 IOS 应用程序提供功能。我们允许用户仅使用普通帐户或使用Facebook/Google 登录进行注册。

我最近一直在阅读 OAuth,我想我了解在我的情况下(当用户使用 Facebook/Google 登录时)如何使用 OAuth 在我的应用程序上注册帐户的过程:

  1. 我向各种社交提供商(例如 FB/Google)注册了我的 IOS 应用。我最终得到了安全存储在后端的客户端 ID/客户端 key 。
  2. 现在,用户点击应用上的社交登录按钮,该按钮会将用户重定向到社交网站进行登录,并授予我的应用使用其社交帐户的权限。
  3. 社交 oauth 提供商将使用授权代码将用户重定向回我的服务器。
  4. 一旦我的服务器获得了授权代码,我将使用该授权代码、客户端 ID 和 key (或所需的任何其他特定凭据)从社交 oauth 提供商检索访问 token 。
  5. 现在我有了用户的访问 token ,并且可以在一段时间内使用他们的社交资源(耶)。
  6. 获得他们的社交访问 token 后,我还会发出一个生成的访问 token ,供应用程序在向我的 REST api 发出请求时使用(该应用程序从现在起只会与我的 REST api 通信)。

我的问题:

  • 上述流程是一个好的做法吗?
  • 假设用户从应用程序中注销(而不是从他们的社交帐户中注销!)。我仍然拥有他们的社交访问 token ,但我销毁了我为他们使用 REST API 而向他们颁发的另一个 token 。现在,用户返回使用社交登录(例如 Facebook/Google)登录我的应用程序。我将如何重新验证这些用户的身份?我知道我不需要用户再次提供权限,但我怎么知道他们是 Facebook/Google 的合法用户并且在我的服务器端也有一个帐户?成功登录后,Facebook/Google 会向应用程序提供什么,以便我可以发送回我的服务器并说:“是的,该用户是 Facebook/Google 的合法社交用户。”。在上述注册过程中,社交认证提供商将提供授权码。在这种情况下我会得到什么(后续登录)?

基本上,我需要找到一种方法,向成功重新登录应用程序的 FB/Google 用户重新颁发 REST API 的访问 token 。

最佳答案

回答您的问题,

  1. 上述流程是一个好的做法吗?

是的,这确实是一个很好的做法,你为什么这么问?您没有将客户端Id/Secret存储在移动端,您只是重定向到Oauth身份验证的社交提供商站点,并且通信发生在服务器到服务器之间,这也被认为是安全的。

关于第三方提供商的访问 token ,除非您以后想访问社交提供商上的任何资源,否则您不必存储他们的任何访问 token ,即一旦您通过身份验证,您可以安全地丢弃他们的访问 token 并生成您自己的

对于第二个问题,

您不必担心这一点,即一旦用户注销,您只需撤销您颁发的 accessToken 即可。

关于Oauth流程,您只需重定向到社交提供商的oauth流程(而不用担心用户是否登录),社交提供商会处理它,您将获得授权码最后,您只需像第一次一样处理它即可。

希望这能解答您的问题!

关于ios - 从 Google/Facebook 帐户重新验证用户身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37515836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com