oauth - oAuth用来记住用户的标准是什么?

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

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

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

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

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

感谢您提供的任何信息。

最佳答案

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

  • 您应该拥有一个站点用户表,该表完全独立于他们用于注册/登录的OAuth提供程序。这使您的站点用户可以使用其在站点上的主要身份将多个帐户组合在一起。 (例如,将Facebook和Twitter都与您关联。)
  • 当您让用户注册时,您应该从他们那里获取电子邮件地址。是否向Facebook询问,还是必须直接询问。这样,您以后就可以将用户“升级”,从纯粹依赖第三方OAuth到在您的站点上设置自己的密码。 (您只需向他们发送指向密码重置页面的链接,以使他们开始创建他们的第一个密码。)
  • 您不想使用电子邮件地址作为主键。我不确定这是否是您真正要描述的内容,但您确实希望他们拥有用于维护其 session 的本地用户ID,等等。然后将其Facebook ID或Twitter ID与该本地ID相关联ID,并使用这些标识符之间的对应关系来匹配要考虑登录的站点用户。
  • 关于oauth - oAuth用来记住用户的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165088/

    相关文章:

    ruby-on-rails - Rails OmniAuth Facebook 'Redirect URL must be absolute'

    javascript - 使用 Javascript 解码 Google Oauth2 访问 token

    oauth - 使用哪个 Google api 来获取用户的名字、姓氏、图片等?

    使用 OAuth 或证书进行 Azure 承载身份验证?

    java - Spring Android Twitter 回调 URL

    php - Twitter 时间戳越界?

    facebook - 无法使用指定的 access_token 访问应用程序

    python - 模块 'tweepy' 没有属性 'OAuthHandler'

    php - Twitter 上传媒体 - 无法验证您的身份

    c# - Windows 服务 Facebook C# SDK 架构