【问题标题】:Facebook Access Token Invalidation Upon Password Change And How Pinterest gets new access tokenFacebook 访问令牌在密码更改时失效以及 Pinterest 如何获取新的访问令牌
【发布时间】:2013-09-06 09:49:09
【问题描述】:

我想知道即使在用户更改了他/她的 Facebook 密码之后,Pinterest 和其他网站如何保持会话并访问 Facebook API,因为据我所知,一旦用户更改了他/她的密码,Facebook 就会使颁发的访问令牌无效.

请帮忙:)

【问题讨论】:

    标签: facebook facebook-graph-api oauth-2.0 facebook-javascript-sdk pinterest


    【解决方案1】:

    不确定 Pinterest 使用的确切实现,但如果用户更改密码,oauth 令牌将失效,您必须让用户重新登录。这是一项安全功能,例如,如果帐户被黑,用户可以更改他/她的密码,并且所有令牌都将失效(想象一下如果不是这种情况会发生什么......您的帐户被黑了,他们授权自己的诈骗应用程序可以完全访问您的帐户,您重置密码...哦,他们仍然可以完全访问您的帐户,因为他们有一个 oauth 令牌)。

    this page 上,您可以看到在更改密码时会产生什么错误,您的应用必须检测到并处理它

    【讨论】:

    • 感谢您的评论李,我知道您在上述评论中所说的一切,但我感兴趣的是如果 FB 使令牌无效,那么当我更改 fb 时,这些网站(如 pinterest)如何仍然保持会话密码?
    • Pinterest 比我想象的要大一些。他们从帕洛阿尔托开始,然后搬到旧金山 (IIRC),已经有 3 个原因说明他们可能拥有比您更多的特权。 Facebook 确实有能力保持 oauth 令牌有效,毕竟他们是为自己的应用程序(facebook messenger?)。令人难以置信的是,Pinterest 可能获得了这种级别的访问权限。但是你不会得到它,所以你必须由他们的开发文档来规定你必须让用户重新登录。当然我只是推测,我怀疑 pinterest 之外的任何人都知道。
    • 您认为 Pinterest 为什么会保留他们的会话?他们可能只是使用常规登录代码,这将在用户下次返回您的站点时为您提供一个新令牌
    • @lgy:不确定您所说的“登录代码”指的是什么。 pinterest 为您的帐户提供的唯一“代码”是 oauth 令牌,在正常情况下,更改密码时该令牌会过期。您可能指的是 facebook 用户帐户的登录详细信息?但如果是这样的话,那是不可能的,因为你没有向 pinterest 提供你的 FB 登录信息(如果你这样做了,在 oAuth 中没有意义!)。
    • 我再次检查了 pinterest、airbnb、newsle、klout 的密码更改行为,如果 FB 密码(这是预期的)发生更改,他们都要求用户登录,除了 FourSquare,即使在我更改之后我的 Facebook 密码能够代表我发布到 FB。想知道即使我更改了我的 Facebook 密码,FourSquare 是如何设法发帖的。
    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 2012-07-09
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多