首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Google/Facebook帐户重新验证用户身份

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

Stack Overflow用户
提问于 2016-05-29 23:14:41
回答 1查看 1.2K关注 0票数 4

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

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

  1. 我将我的IOS应用程序注册到不同的社交提供商(例如。( FB/Google)。最后,我得到了安全存储在后端的客户端ID/客户端秘密密钥。
  2. 现在,用户点击应用程序上的社交登录按钮,然后将用户重定向到社交网站登录,并允许我的应用程序使用他们的社交账户。
  3. 社交oauth提供程序将使用授权代码将用户重定向回我的服务器。
  4. 一旦我的服务器有了授权代码,我就会使用它、客户机id和机密(或任何其他所需的特定凭证)从社交oauth提供程序中检索访问令牌。
  5. 现在我有了用户的访问令牌,可以在一段时间内使用他们的社会资源(yay)。
  6. 一旦我获得了他们的社交访问令牌,我还会发出一个生成的访问令牌,以便应用程序在向我的REST发出请求时使用(从现在起,应用程序只会与我的REST通信)。

我的问题:

  • 上述过程是一个良好的实践吗?
  • 假设用户从应用程序中登录(而不是从他们的社交账户)。我仍然拥有他们的社交访问令牌,但我销毁了我为他们使用REST 而发布的另一个令牌。现在,用户回来登录我的应用程序使用社会登录(例如。( Fb/Google)。我将如何重新认证这些用户?我知道我不需要用户再次提供权限,但是我怎么知道他们是Fb/Google的合法用户,并且在我的服务器端也有一个帐户?如果登录成功,Fb/Google会向应用程序提供什么,这样我就可以将其发送回我的服务器:“是的,这个用户是Fb/Google的合法社交用户。”在上述注册程序中,社交oauth提供者将提供授权代码。在这种情况下,我会得到什么(随后的登录)?

基本上,我需要找到一种方法来重新向REST发出访问令牌,以便成功地重新登录应用程序.的FB/Google用户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 08:13:20

为了回答你的问题,

  1. 上面的过程是一个好的实践吗?

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

关于第三方提供程序的访问令牌,除非您以后想访问社交提供商上的任何资源,否则您不必存储它们的任何访问令牌,也就是说,一旦您通过身份验证,就可以安全地丢弃它们的访问令牌并生成您自己的访问令牌。

回答第二个问题,

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

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

希望这能回答你的问题!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37515836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档