我使用SpringBoot Security和Spring Security Oauth2。
我使用OAuth2ClientAuthenticationProcessingFilter
登录社交网络。
在此过滤器中,我使用自定义UserInfoTokenServices
,并使用了loadAuthentication(String accessToken)
在返回OAuth2Authentication
之前的这个方法中,我将社交用户ID写入DB用户或创建它,如果不存在(使用额外的逻辑,我给他一些密码)。
它工作正常,以后用户可以使用他的电子邮件和密码登录,作为数据库用户或他的社交网络个人资料,它将是相同的个人资料。
但是现在我需要链接新社交,当用户已经登录时。
我尝试使用相同的端点/ socialName / login,但现在super.loadAuthentication(accessToken)
UserInfoTokenServices
抛出:
Getting user info from: https://www.googleapis.com/oauth2/v2/userinfo
Could not fetch user details: class org.springframework.web.client.HttpClientErrorException, 401 Unauthorized
如何解决?或者在这种情况下该怎么做?