小编DRa*_*yen的帖子

使用 Spring Boot 登录 Twitter

我正在尝试使用社交登录登录我的 Web 应用程序(使用 Spring Boot 开发)。谷歌和脸书的登录没问题。但由于某种原因,Twitter 登录中存在令牌问题。我已经在 Twitter 开发者网站上创建了该项目并获得了所有凭据。请参考我下面的代码。

下面提到了我的属性文件值。

twitter.client.client-id=XXXXXXX

twitter.client.client-secret=XXXXXXXX

twitter.client.access-token-uri= https://api.twitter.com/oauth/access_token

twitter.client.user-authorization-uri= https://api.twitter.com/oauth/authorize

twitter.client.token-name=oauth_token

twitter.client.authentication-scheme=表单

twitter.resource.user-info-uri= https://api.twitter.com/1.1/account/verify_credentials.json

过滤方法

private Filter ssoTwitterFilter(String processingUrl, PrincipalExtractor principalExtractor) {
    OAuth2ClientAuthenticationProcessingFilter twitterFilter = new OAuth2ClientAuthenticationProcessingFilter(
            processingUrl);
    LOGGER.debug("processingUrl :{} ", processingUrl);

    twitterFilter.setAuthenticationSuccessHandler(authenticationSuccessHandlerAndRegistrationFilter());
    OAuth2RestTemplate twitterTemplate = new OAuth2RestTemplate(twitter(), oauth2ClientContext);
    twitterFilter.setRestTemplate(twitterTemplate);
    UserInfoTokenServices tokenServices = new UserInfoTokenServices(twitterResource().getUserInfoUri(),
            twitter().getClientId());
    tokenServices.setRestTemplate(twitterTemplate);
    tokenServices.setPrincipalExtractor(principalExtractor);
    return twitterFilter;
}
Run Code Online (Sandbox Code Playgroud)

这些是 bean 配置。

@Bean
@ConfigurationProperties("twitter.client")
public AuthorizationCodeResourceDetails twitter() {
    return new AuthorizationCodeResourceDetails();
}

@Bean
@ConfigurationProperties("twitter.resource")
public ResourceServerProperties twitterResource() {
    return new ResourceServerProperties();
} …
Run Code Online (Sandbox Code Playgroud)

twitter spring-social spring-social-twitter spring-boot

3
推荐指数
1
解决办法
2330
查看次数