我正在尝试使用StackExchange OAuth API在我的站点上验证我的用户。
当用户第一次注册时,一切都很好。此时,我得到了“访问令牌”,它保存在我的DB中。
但是下一次用户登录时,访问令牌值实际上与前一个不同。应该是这样的吗?
如果是这样,如何检查已经使用StackExchange注册的现有用户?
我可以通过指定一个特定的站点名(例如“堆栈溢出”)来获取用户的信息。但是,如果我没有这些信息,并且我需要检查用户是否已经通过StackExchange注册了呢?
是否有一个“用户”信息,我可以得到一个accessToken?
发布于 2015-09-07 18:23:35
StackExchange OAuth实现的目的不是对第三方应用程序的用户进行身份验证,而是授权这些第三方应用程序访问StackExchange API。
您获得的访问令牌不是表示当前登录用户的令牌,而是代表用户授予应用程序访问API的权限。这是关于OAuth 2.0范围的经典混淆,在这里将详细讨论:http://oauth.net/articles/authentication/。
总之:您不能使用OAuth或StackExchange访问令牌对用户进行身份验证。
StackExchange确实支持OpenID协议,以方便您所寻找的目的,请参阅https://openid.stackexchange.com/。这样做的缺点是,OpenID是一个被OpenID连接取代的被废弃的协议。OpenID连接是一种实际上构建在OAuth 2.0之上的身份验证协议,但StackExchange还不支持它。
https://stackoverflow.com/questions/32442057
复制相似问题