【问题标题】:OAuth with StackExchange API带有 StackExchange API 的 OAuth
【发布时间】:2015-09-08 02:23:35
【问题描述】:

我正在尝试使用 StackExchange OAuth API 在我的网站上对我的用户进行身份验证。

当用户第一次注册时一切正常。此时,我获得了“访问令牌”,并将其保存在我的数据库中。

但是用户下次登录时,access token 的值其实和之前的不一样。应该是这样的吗?

如果是这样,我如何检查已经使用 StackExchange 注册的现有用户?

我可以通过提供特定站点名称(例如“stackoverflow”)来获取用户信息。但是,如果我没有该信息并且需要检查用户是否已通过 StackExchange 登录,该怎么办?

有没有我可以获得 accessToken 的“用户”信息?

【问题讨论】:

    标签: api oauth stackexchange


    【解决方案1】:

    StackExchange OAuth 实施并非旨在向 3rd 方应用程序验证用户身份,而是授权这些 3rd 方应用程序访问 StackExchange API。

    您获得的访问令牌不是代表当前登录用户的令牌,它代表了代表用户访问 API 的权限给您的应用程序。这是关于 OAuth 2.0 范围的经典混淆,此处详细讨论:http://oauth.net/articles/authentication/

    总而言之:您不能使用 OAuth 或 StackExchange 访问令牌对用户进行身份验证。

    StackExchange 确实支持 OpenID 协议以方便您寻找的目的,请参阅https://openid.stackexchange.com/。这样做的缺点是 OpenID 是一个已弃用的协议,已被 OpenID Connect 取代。 OpenID Connect 是一种身份验证协议,实际上构建在 OAuth 2.0 之上,但 StackExchange 尚不支持。

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 2013-07-12
      • 2011-09-06
      • 1970-01-01
      • 2011-12-04
      • 2015-02-26
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多