gpt4 book ai didi

android - 我应该如何将社交媒体 SSO 与我的自定义登录服务正确集成?

转载 作者:行者123 更新时间:2023-11-29 14:20:41 25 4
gpt4 key购买 nike

我正在尝试将移动应用程序的现有登录系统与一些社交媒体登录解决方案相集成。我成功地将 facebook 和 google+ 登录与我的应用程序集成在一起,我到达了用户登录的地步,我可以获得他们的社交信息。

但现在我想知道哪种方法是将决定使用社交媒体帐户的用户与我的 native 登录系统集成的最佳方法。我应该使用他们的电子邮件帐户作为登录名并在服务器端生成密码吗?或者可能使用 oauth token 而不是密码?

我需要跟踪我的用户,即使是那些没有正式填写注册表的用户。那么我应该放置什么而不是电子邮件 + 密码?

最佳答案

这可能很棘手 - 大多数情况很简单,但您需要考虑边缘。我发现将电子邮件/密码视为另一种身份验证机制更容易。你要

  1. 包含用户核心数据的用户记录(可能是姓名、电子邮件地址、应用特定的个人资料数据等)
  2. 他们连接的身份验证方法的一系列记录,例如Google+、Facebook、用户/通行证。

连接的身份验证方法可以存储这些方法的相关信息 - 例如对于谷歌,它可能是谷歌用户 ID,如果使用离线访问,则可能是刷新 token 。这使您可以轻松提供连接多个社交帐户的服务。

密码可能是您要针对原始用户记录存储的一种特殊情况。在这种情况下,如果有人使用社交登录注册,那么您可以生成一个随 secret 码,或者将其保留为空。无论哪种方式,只要您请求用户的电子邮件地址,如果他们想访问他们的帐户但不再拥有 3p 登录名,您总是可以让他们通过忘记密码流程(您生成密码并通过电子邮件发送给他们) .

如果可以避免,您不想做的是强制用户在登录后立即给您一个新密码。但是,如果您允许多个登录方法与一个帐户相关联,您可能希望允许关联它们。因此,您的流程可能是:

  • 用户登录(使用 3p 或电子邮件/密码)
  • 如果您有该登录方法的记录(例如匹配 Google 或 Facebook 用户 ID、匹配电子邮件/密码组合),请让用户登录,然后就完成了。
  • 如果您没有与该登录方法匹配的记录:
    1. 查看您是否有与现有用户帐户匹配的电子邮件地址。如果您这样做,某些站点会自动将新的登录方法合并到该帐户。如果隐私/安全更受关注,您可能想要确认用户想要登录该帐户,或者让他们通过 1 次验证(例如“看起来您之前已经使用密码登录,请现在输入您的密码以链接您的帐户和您的 Google 帐户”等)。然后链接帐户并像登录一样继续。
    2. 查看您是否有可能那个人的帐户。例如,也许您有一个名称匹配的帐户。在这种情况下,您可能希望提示用户连接他们的帐户(例如,某处提示“您之前连接过 Facebook 吗?单击此处链接这些帐户”,然后引导用户完成登录过程你怀疑他们可能有的方法)。
    3. 如果他们看起来是全新的,则创建一个新的用户记录,并将他们视为新注册的。

如果您可以将电子邮件地址视为唯一字段,事情就会变得容易得多。这意味着,如果有人使用与电子邮件地址相关联的 3p 帐户登录,您可能必须在继续之前强制他们链接他们的帐户。如果他们不想,而您需要一个电子邮件地址,您可以提示他们手动输入一个,然后通过向他们发送电子邮件并让他们确认来正常验证它。

ChrLipp 的链接很好,还可以查看 Google Developers 网站上关于同时使用 FB 和 G+ 的指南:https://developers.google.com/+/best-practices/facebook

关于android - 我应该如何将社交媒体 SSO 与我的自定义登录服务正确集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568223/

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