oAuth用于记住用户的标准是什么?

mus*_*888 6 oauth user-accounts twitter-oauth facebook-oauth

我和我的同事开发了一个应用程序(包括Web应用程序和移动应用程序(iPhone和android)),其中包括一个登录过程.目前,我们拥有自己的登录机制(用户已在我们的应用程序上签署了帐户,并将其信息存储在我们的数据库中).我们正在寻求整合oAuth并允许用户使用Facebook,Twitter,LinkedIn和Google登录.

现在,当用户使用其中任何一个进行登录时,据我所知,登录过程发生在我们的应用程序之外,并且基本上只获得访问其资源的权限.

我的问题是:通过oAuth,我们如何记住用户?即,登录的用户具有读/写权限并具有首选项.当他们没有通过我们的应用程序实际注册时,我们如何记住这些...我们可以将他们的电子邮件地址存储在我们的"用户"表中吗?

在这种情况下,最佳做法是什么?

感谢您提供的任何信息.

sbl*_*lom 11

为几个不同的启用OAuth的网站构建了身份验证数据库后,我可以说我已经学到了一些你应该记住的事情.

  1. 您的网站用户表应该完全独立于用于注册/登录的OAuth提供商.这使您的网站用户可以在您网站上的主要身份下将多个帐户组合在一起.(例如,将Facebook和Twitter联系在一起.)
  2. 当您让用户注册时,您应该从他们那里获得一个电子邮件地址.无论你是要求Facebook,还是你必须直接询问.这使您可以在以后完全依赖第三方OAuth"升级"用户,以便在您的网站上设置自己的密码.(您只需向他们发送一个指向密码重置页面的链接,以便让他们开始创建他们的第一个密码.)
  3. 您不希望使用电子邮件地址作为主键.我不确定这是否是您实际描述的内容,但您确实希望他们拥有您用于维护会话的本地用户ID等.然后将他们的Facebook ID或Twitter ID与本地用户关联起来ID,并使用这些标识符之间的对应关系来匹配您的网站的哪些用户考虑登录.

  • 感谢您的反馈!!几个问题: - 关于第1点,是否适用于用户使用不同OAuth帐户(Facebook,Twitter,...)登录的情况,但它们仍然是链接的并被视为一个实际帐户? - 关于第2点,你是什么意思升级?你能澄清一下这个用例吗? - 关于第3点,是系统/数据库生成的"本地用户ID"还是最终用户指定的? (2认同)
  • +1为"您只需向他们发送密码重置页面的链接,以便让他们开始创建他们的第一个密码" (2认同)