时间:2023-05-20 17:48:01 | 来源:网站运营
时间:2023-05-20 17:48:01 来源:网站运营
基于Spring的新浪微博第三方登录实现:public class SinaWeiboOAuthService extends OAuthServiceDeractor { private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info"; public SinaWeiboOAuthService(OAuthService oAuthService) { super(oAuthService, OAuthTypes.SINA_WEIBO); } @Override public OAuthUser getOAuthUser(Token accessToken) { OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL); this.signRequest(accessToken, request); Response response = request.send(); OAuthUser oAuthUser = new OAuthUser(); oAuthUser.setoAuthType(getoAuthType()); oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString()); oAuthUser.setUser(new User()); return oAuthUser; }}
SinaWeiboOAuthService需要完成获取用户的相关信息,并将其转换成为OAuthUser对象,关于如何获取新浪微博的用户信息以及其相关参数,可以参看新浪微博的官方文档。@Configurationpublic class OAuthConfig { private static final String CALLBACK_URL = "http://tianmaying.com/oauth/%s/callback"; @Value("${oAuth.sina.appKey}") String sinaAppKey; @Value("${oAuth.sina.appSecret}") String sinaAppSecret; @Bean public OAuthServiceDeractor getSinaOAuthService(){ return new SinaWeiboOAuthService(new ServiceBuilder() .provider(SinaWeiboApi20.class) .apiKey(sinaAppKey) .apiSecret(sinaAppSecret) .callback(String.format(CALLBACK_URL, OAuthTypes.SINA_WEIBO)) .build()); }}
127.0.0.1 tianmaying.com
关键词:实现