社交oauth如何真正起作用?

时间:2018-08-02 17:17:46

标签: oauth facebook-login google-signin google-login twitter-login

我对社交oauth的工作方式感到困惑?可以说我已经在我的项目中实现了社交oauth登录。

用户A在我的网站上使用Google Oauth注册。我以某种方式将“使用GOOGLE注册”按钮放到了我的注册页面中,然后用户将其单击,并被定向到一个链接,在该链接上Google会要求是否授权我的应用程序。如果用户A允许,那么Google服务器会在第一时间向我的服务器发送哪些信息。它会发送一些信息,以便我可以将其保存在服务器中,以知道用户A已注册,并且可以给用户A一个ID,以将其链接到服务器中数据库的其他表(与google无关)服务器)。因此,真正的问题是,当新用户注册以及现有用户再次登录时,谷歌(或其他任何服务提供商,如Facebook,Twitter等)将向我发送什么消息。如果用户(已注册)尝试再次注册会怎样?还是登录时没有再次授权该网站?

如果您想要更详细的问题,请发表评论,我会详细说明。

2 个答案:

答案 0 :(得分:1)

首先确定,让我们使用与社交登录不同的术语。让我们称其为第三方登录,这是为什么。

您的应用程序具有自己的登录系统,用户可以说添加电子邮件地址并创建登录名和密码来在系统上创建其帐户。现在,您要添加第三方登录名,即Facebook,Google和Twitter登录。这些实际上是第三方登录。

您实际要做的是将用户的第三方社交媒体帐户与您的登录系统相关联。通常用于此目的的术语称为帐户链接。

假设用户A已经在您的系统中创建了一个帐户,现在A具有一个Facebook帐户,因此他们希望将其Facebook帐户与您的登录系统关联。因此,您创建一个Facebook登录按钮,Facebook将返回给您一个ID,该ID通常是facebook系统上用户的ID。因此,当用户使用Facebook登录时,您将获得Facebook ID,该ID可以存储在系统的用户帐户中。

如果用户B要使用Google登录到您的系统,并且B在您的系统中还没有帐户,那么事情会变得更加混乱。 当他们登录时,您可能会得到用户ID,我想您也会获得他们的电子邮件地址,因此您可以使用google的电子邮件地址,以便您可以在系统上为他们创建一个实际帐户,并将google登录名直接链接到该帐户自动。

自从我这样做已经有一段时间了,但是我相信您会获得用户ID和第三方提供商退还给您的电子邮件,您可能想检查一下内存是否适合他们,而您可能有找回ID后,请求获取电子邮件地址。

答案 1 :(得分:0)

社交登录仍未规范化。你必须一一解决它们,除非你利用像 trusstee.io 解决方案这样的东西。 它看起来使用起来很简单,在 https://medium.com/me/stats/post/ef5d5a5a3943 处进行了描述。