社交登录背后的逻辑

Jus*_*ing 6 logic login google-login facebook-login

我为我的网站创建了一个很好的小登录脚本,允许用户立即登录FacebookGoogle.

我要做的是设置一些检查以确保重复项不会出现在数据库中.

以下是我所涉及的一些场景:

  • 使用Google/Facebook帐户登录,我已经注册了此帐户,这将直接登录用户,因为他们已经关联了此帐户.
  • 用户已经在Google帐户中注册,但点击了Facebook,因为他们无法记住他们使用的是哪个帐户.这将提醒用户,从Facebook返回的电子邮件地址已经在Google帐户中注册.这将使他们能够点击Facebook登录 ??? 在这个时刻还不确定这个逻辑???
  • 用户点击谷歌/ Facebook登录,但返回的电子邮件地址是经过手动注册的用户.这将提醒用户他们尝试登录的社交帐户将需要密码.

我正在考虑做的是允许用户链接帐户,以便不会发生警报过程,因为我可以通过我的网站将我的Facebook帐户链接到我的谷歌帐户,反之亦然等.

我要问的是:

我可能会遗漏任何其他检查吗?这个逻辑是否合理?有什么我在做什么让你质疑登录过程??

基本上就这一点提出逻辑建议.

Chr*_*nds 6

恭喜您!您几乎在正确的轨道上。让我们在这里细分您的情况。

理想情况

1. Registered on your site
2. Log in with Google
3. Log in with Facebook
Run Code Online (Sandbox Code Playgroud)

现在,让我们在这里使用公分母,我的意思是主键。我想您的情况应该是电子邮件地址。

实际流程

1. User registers. You save the email address
Run Code Online (Sandbox Code Playgroud)

要么,

2. User registers with Google/Facebook and you save the email address.
Run Code Online (Sandbox Code Playgroud)

登入程序

1. You receive the email address either from direct login/facebook/google.
2. You match it against your table
3. On positive match, you link this social login to an existing account
Run Code Online (Sandbox Code Playgroud)

如果,

4. It is not a positive match then you accept whatever data you receive and then forward
   and then pass on to the registration page.
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!如果您想了解其他任何信息,请告诉我。

干杯!

  • 这是所提出问题的解决方案,但是我警告说,电子邮件作为跨SSO的主键是一个危险的方向,不适合用户可以输入任何个人信息的网站。(例如:如果您忘记检查google的email_verified,则所有帐户现在都处于风险中。如果google SSO用户从未使用过fb,但该地址的前一位所有者曾使用过..哎呀。)危害程度较小,但只要清楚地表明他们正在输入可以中止的新帐户创建就更安全了。 (2认同)