Oauth2 身份验证失败
Posted
技术标签:
【中文标题】Oauth2 身份验证失败【英文标题】:Oauth2 authentication failed 【发布时间】:2016-04-27 11:30:12 【问题描述】:我正在尝试在我的应用程序(客户端)中使用 spring OAUTH2sso,并安装了一个 oauth2 提供程序。在 oauth2 提供程序中配置客户端并在客户端中配置 clientId、clientSecret、accessTokenUri 和 userAuthorizationUri 时,当用户通过身份验证并授权客户端以及重定向后,客户端向我显示身份验证失败错误,因为 springOauth2sso 库不获取用户详细信息。
Whitelabel 错误页面 此应用程序没有明确的映射 /error,因此您将其视为后备。 1 月 21 日星期四 10:28:28 CET 2016 出现意外错误(类型=未授权,状态=401)。 身份验证失败:无法从令牌获取用户详细信息
我用其他 oauth2 库测试了我的提供程序,结果非常好,但我不确定在这种情况下发生了什么。
【问题讨论】:
【参考方案1】:此错误可能有很多不同的含义,因为它是 InvalidTokenException 的包装器。
您的令牌可能无效、已过期或您的客户端可能存在问题,甚至在检索 UserDetails 时出现问题。
要获取有关此问题的更多信息,我建议进行调试并将调试点直接放置到此错误的来源OAuth2ClientAuthenticationProcessingFilter。在第 99 行,此过滤器正在尝试从 ResourceServerTokenServices 实现加载身份验证,如果您进入该调用,您将找出导致错误的原因。
我也不确定我是否正确理解了您的配置,但我想您可能需要以下两个属性之一:
security.oauth2.resource.token-info-uri
security.oauth2.resource.user-info-uri
更多信息在这里:Spring Boot Docs
【讨论】:
感谢您的回答。我没有意识到我的属性中定义了错误的 jwt,并且错误是 invalid_token,因为库尝试使用 jwt 读取令牌。 很高兴为您提供帮助 :) 由于各种原因,我不得不自己多次调试相同的错误。起初当然没有帮助,这个错误是很多可能出错的东西的包装:)以上是关于Oauth2 身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章
RestSharp OAuth2 承载身份验证失败,访问被拒绝
ruby 猴子补丁修复身份验证失败! invalid_credentials:OAuth2 ::错误jruby 8,rails 3.2.13 devise 3.2.4 |迫使法拉第'uncom