【问题标题】:OAuth - Binding local user to 3rd partyOAuth - 将本地用户绑定到第 3 方
【发布时间】:2011-11-20 10:43:26
【问题描述】:

我正在开发一个移动应用程序,用户可以在其中获得 Facebook、Twitter 或 Foursquare 授权(通过 OAuth),而不是创建新帐户和密码。

问题是,我不确定我应该在数据库中存储什么来指向第 3 方帐户。从 OAuth 进程获取的auth_token 在某些情况下(例如用户更改密码时)似乎会过期或更改。所以,这不是一个好的选择。

什么是长期选择?我的意思是,即使用户未经授权我的应用程序,然后授权它回来,我希望能够找出与他们对应的本地用户。我应该使用每个网站各自的 API 并挖掘出user_id 并存储它吗?我相信这在会话之间是一致的。

有什么建议吗?

谢谢。

【问题讨论】:

  • 为什么不为每个提供商使用电子邮件、uId 等?我认为您可以将 user_id 用于 Google 和 Facebook。但我猜像 twitter 这样的 api 不提供电子邮件或任何唯一 ID

标签: login oauth facebook twitter-oauth foursquare


【解决方案1】:

当您从站点获得授权时,您只需要存储 access_token(如果 OAuth 2.0 则需要刷新令牌)。使用 OAuth 2.0 access_token,它偶尔会过期,您需要使用 refresh_token 来获取新的 access_token。更改密码的用户不会更改令牌,但用户可以随时撤销令牌。

由于它们必须通过您的移动应用程序才能获得 OAuth 身份验证,因此您应该能够轻松地将它们链接在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2012-07-24
    • 2012-03-26
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多