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

时间:2012-06-22 22:45:07

标签: oauth twitter-oauth facebook-oauth user-accounts

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

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

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

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

感谢您提供的任何信息。

1 个答案:

答案 0 :(得分:11)

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

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