提交 188c52ca 编写于 作者: 智布道's avatar 智布道 👁

👌 修改获取accessToken时的返回值为实体类,方便扩展

上级 2e0262ed
...@@ -168,6 +168,17 @@ authRequest.login("code"); ...@@ -168,6 +168,17 @@ authRequest.login("code");
待续 待续
# 交流
| 微信(备注:加群) | 公众号 |
| :------------: | :------------: |
| <img src="https://gitee.com/yadong.zhang/static/raw/master/wx/wx.png" width="170"/> | <img src="https://gitee.com/yadong.zhang/static/raw/master/wx/wechat_account.jpg" width="200" /> |
**QQ群**
[![](https://images.gitee.com/uploads/images/2019/0129/191256_a40bceba_784199.png)](https://shang.qq.com/wpa/qunwpa?idkey=3571c554a143eff1e15807de033a240196c6b493b25b903d1d37571cfb6040aa)
## 请喝咖啡 ## 请喝咖啡
| 支付宝 | 微信 | | 支付宝 | 微信 |
......
...@@ -15,4 +15,9 @@ public class AuthToken { ...@@ -15,4 +15,9 @@ public class AuthToken {
private String expireIn; private String expireIn;
private String refreshToken; private String refreshToken;
private String uid; private String uid;
private String openId;
/**
* 针对钉钉
*/
private String accessCode;
} }
...@@ -11,6 +11,7 @@ import me.zhyd.oauth.config.AuthConfig; ...@@ -11,6 +11,7 @@ import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.consts.ApiUrl; import me.zhyd.oauth.consts.ApiUrl;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.StringUtils; import me.zhyd.oauth.utils.StringUtils;
...@@ -32,7 +33,7 @@ public class AuthAlipayRequest extends BaseAuthRequest { ...@@ -32,7 +33,7 @@ public class AuthAlipayRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.setGrantType("authorization_code"); request.setGrantType("authorization_code");
request.setCode(code); request.setCode(code);
...@@ -45,11 +46,14 @@ public class AuthAlipayRequest extends BaseAuthRequest { ...@@ -45,11 +46,14 @@ public class AuthAlipayRequest extends BaseAuthRequest {
if (!response.isSuccess()) { if (!response.isSuccess()) {
throw new AuthException(response.getSubMsg()); throw new AuthException(response.getSubMsg());
} }
return response.getAccessToken(); return AuthToken.builder()
.accessToken(response.getAccessToken())
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest(); AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
AlipayUserInfoShareResponse response = null; AlipayUserInfoShareResponse response = null;
try { try {
......
...@@ -22,7 +22,7 @@ public class AuthBaiduRequest extends BaseAuthRequest { ...@@ -22,7 +22,7 @@ public class AuthBaiduRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getBaiduAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getBaiduAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
...@@ -30,11 +30,14 @@ public class AuthBaiduRequest extends BaseAuthRequest { ...@@ -30,11 +30,14 @@ public class AuthBaiduRequest extends BaseAuthRequest {
if (!AuthBaiduErrorCode.OK.equals(errorCode)) { if (!AuthBaiduErrorCode.OK.equals(errorCode)) {
throw new AuthException(errorCode.getDesc()); throw new AuthException(errorCode.getDesc());
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduUserInfoUrl(accessToken)).execute();
String userInfo = response.body(); String userInfo = response.body();
JSONObject object = JSONObject.parseObject(userInfo); JSONObject object = JSONObject.parseObject(userInfo);
...@@ -52,7 +55,8 @@ public class AuthBaiduRequest extends BaseAuthRequest { ...@@ -52,7 +55,8 @@ public class AuthBaiduRequest extends BaseAuthRequest {
} }
@Override @Override
public AuthResponse revoke(String accessToken) { public AuthResponse revoke(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduRevokeUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduRevokeUrl(accessToken)).execute();
String userInfo = response.body(); String userInfo = response.body();
JSONObject object = JSONObject.parseObject(userInfo); JSONObject object = JSONObject.parseObject(userInfo);
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -24,18 +25,21 @@ public class AuthCodingRequest extends BaseAuthRequest { ...@@ -24,18 +25,21 @@ public class AuthCodingRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getCodingAccessTokenUrl(config.getClientId(), config.getClientSecret(), code); String accessTokenUrl = UrlBuilder.getCodingAccessTokenUrl(config.getClientId(), config.getClientSecret(), code);
HttpResponse response = HttpRequest.get(accessTokenUrl).execute(); HttpResponse response = HttpRequest.get(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
if (accessTokenObject.getIntValue("code") != 0) { if (accessTokenObject.getIntValue("code") != 0) {
throw new AuthException("Unable to get token from coding using code [" + code + "]"); throw new AuthException("Unable to get token from coding using code [" + code + "]");
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getCodingUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getCodingUserInfoUrl(accessToken)).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
if (object.getIntValue("code") != 0) { if (object.getIntValue("code") != 0) {
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -23,18 +24,21 @@ public class AuthCsdnRequest extends BaseAuthRequest { ...@@ -23,18 +24,21 @@ public class AuthCsdnRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getCsdnAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getCsdnAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
if (accessTokenObject.containsKey("error_code")) { if (accessTokenObject.containsKey("error_code")) {
throw new AuthException("Unable to get token from csdn using code [" + code + "]"); throw new AuthException("Unable to get token from csdn using code [" + code + "]");
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getCsdnUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getCsdnUserInfoUrl(accessToken)).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
if (object.containsKey("error_code")) { if (object.containsKey("error_code")) {
......
...@@ -6,8 +6,8 @@ import cn.hutool.json.JSONObject; ...@@ -6,8 +6,8 @@ import cn.hutool.json.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthDingTalkErrorCode; import me.zhyd.oauth.model.AuthDingTalkErrorCode;
import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.GlobalAuthUtil;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -28,12 +28,15 @@ public class AuthDingTalkRequest extends BaseAuthRequest { ...@@ -28,12 +28,15 @@ public class AuthDingTalkRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); return AuthToken.builder()
.accessCode(code)
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String code) { protected AuthUser getUserInfo(AuthToken authToken) {
String code = authToken.getAccessCode();
// 根据timestamp, appSecret计算签名值 // 根据timestamp, appSecret计算签名值
String stringToSign = System.currentTimeMillis() + ""; String stringToSign = System.currentTimeMillis() + "";
String urlEncodeSignature = GlobalAuthUtil.generateDingTalkSignature(config.getClientSecret(), stringToSign); String urlEncodeSignature = GlobalAuthUtil.generateDingTalkSignature(config.getClientSecret(), stringToSign);
...@@ -52,11 +55,4 @@ public class AuthDingTalkRequest extends BaseAuthRequest { ...@@ -52,11 +55,4 @@ public class AuthDingTalkRequest extends BaseAuthRequest {
.source(AuthSource.DINGTALK) .source(AuthSource.DINGTALK)
.build(); .build();
} }
@Override
public AuthResponse login(String code) {
return AuthResponse.builder()
.data(this.getUserInfo(code))
.build();
}
} }
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -23,18 +24,21 @@ public class AuthGiteeRequest extends BaseAuthRequest { ...@@ -23,18 +24,21 @@ public class AuthGiteeRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getGiteeAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getGiteeAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
if (accessTokenObject.containsKey("error")) { if (accessTokenObject.containsKey("error")) {
throw new AuthException("Unable to get token from gitee using code [" + code + "]"); throw new AuthException("Unable to get token from gitee using code [" + code + "]");
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getGiteeUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getGiteeUserInfoUrl(accessToken)).execute();
String userInfo = response.body(); String userInfo = response.body();
JSONObject object = JSONObject.parseObject(userInfo); JSONObject object = JSONObject.parseObject(userInfo);
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.GlobalAuthUtil;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -26,18 +27,21 @@ public class AuthGithubRequest extends BaseAuthRequest { ...@@ -26,18 +27,21 @@ public class AuthGithubRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getGithubAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getGithubAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
Map<String, String> res = GlobalAuthUtil.parseStringToMap(response.body()); Map<String, String> res = GlobalAuthUtil.parseStringToMap(response.body());
if (res.containsKey("error")) { if (res.containsKey("error")) {
throw new AuthException(res.get("error") + ":" + res.get("error_description")); throw new AuthException(res.get("error") + ":" + res.get("error_description"));
} }
return res.get("access_token"); return AuthToken.builder()
.accessToken(res.get("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getGithubUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getGithubUserInfoUrl(accessToken)).execute();
String userInfo = response.body(); String userInfo = response.body();
JSONObject object = JSONObject.parseObject(userInfo); JSONObject object = JSONObject.parseObject(userInfo);
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -24,18 +25,21 @@ public class AuthOschinaRequest extends BaseAuthRequest { ...@@ -24,18 +25,21 @@ public class AuthOschinaRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getOschinaAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getOschinaAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
if (accessTokenObject.containsKey("error")) { if (accessTokenObject.containsKey("error")) {
throw new AuthException("Unable to get token from oschina using code [" + code + "]"); throw new AuthException("Unable to get token from oschina using code [" + code + "]");
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getOschinaUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getOschinaUserInfoUrl(accessToken)).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
if (object.containsKey("error")) { if (object.containsKey("error")) {
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.StringUtils; import me.zhyd.oauth.utils.StringUtils;
...@@ -24,18 +25,21 @@ public class AuthQqRequest extends BaseAuthRequest { ...@@ -24,18 +25,21 @@ public class AuthQqRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getQqAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getQqAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
JSONObject accessTokenObject = JSONObject.parseObject(response.body()); JSONObject accessTokenObject = JSONObject.parseObject(response.body());
if (!accessTokenObject.containsKey("access_token")) { if (!accessTokenObject.containsKey("access_token")) {
throw new AuthException("Unable to get token from qq using code [" + code + "]"); throw new AuthException("Unable to get token from qq using code [" + code + "]");
} }
return accessTokenObject.getString("access_token"); return AuthToken.builder()
.accessToken(accessTokenObject.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
String openId = this.getOpenId(accessToken); String openId = this.getOpenId(accessToken);
HttpResponse response = HttpRequest.get(UrlBuilder.getQqUserInfoUrl(accessToken, openId)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getQqUserInfoUrl(accessToken, openId)).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
......
...@@ -2,6 +2,7 @@ package me.zhyd.oauth.request; ...@@ -2,6 +2,7 @@ package me.zhyd.oauth.request;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.model.AuthToken;
/** /**
* @author yadong.zhang (yadong.zhang0415(a)gmail.com) * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
...@@ -32,20 +33,20 @@ public interface AuthRequest { ...@@ -32,20 +33,20 @@ public interface AuthRequest {
/** /**
* 撤销授权 * 撤销授权
* *
* @param accessToken 登录成功后返回的accessToken * @param authToken 登录成功后返回的Token信息
* @return AuthResponse * @return AuthResponse
*/ */
default AuthResponse revoke(String accessToken) { default AuthResponse revoke(AuthToken authToken) {
throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); throw new AuthException(ResponseStatus.NOT_IMPLEMENTED);
} }
/** /**
* 刷新access token (续期) * 刷新access token (续期)
* *
* @param accessToken 登录成功后返回的accessToken * @param authToken 登录成功后返回的Token信息
* @return AuthResponse * @return AuthResponse
*/ */
default AuthResponse refresh(String accessToken) { default AuthResponse refresh(AuthToken authToken) {
throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); throw new AuthException(ResponseStatus.NOT_IMPLEMENTED);
} }
} }
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -24,18 +25,21 @@ public class AuthTencentCloudRequest extends BaseAuthRequest { ...@@ -24,18 +25,21 @@ public class AuthTencentCloudRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getTencentCloudAccessTokenUrl(config.getClientId(), config.getClientSecret(), code); String accessTokenUrl = UrlBuilder.getTencentCloudAccessTokenUrl(config.getClientId(), config.getClientSecret(), code);
HttpResponse response = HttpRequest.get(accessTokenUrl).execute(); HttpResponse response = HttpRequest.get(accessTokenUrl).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
if (object.getIntValue("code") != 0) { if (object.getIntValue("code") != 0) {
throw new AuthException("Unable to get token from tencent cloud using code [" + code + "]: " + object.get("msg")); throw new AuthException("Unable to get token from tencent cloud using code [" + code + "]: " + object.get("msg"));
} }
return object.getString("access_token"); return AuthToken.builder()
.accessToken(object.getString("access_token"))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getTencentCloudUserInfoUrl(accessToken)).execute(); HttpResponse response = HttpRequest.get(UrlBuilder.getTencentCloudUserInfoUrl(accessToken)).execute();
JSONObject object = JSONObject.parseObject(response.body()); JSONObject object = JSONObject.parseObject(response.body());
if (object.getIntValue("code") != 0) { if (object.getIntValue("code") != 0) {
......
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.model.AuthUserGender;
import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.GlobalAuthUtil;
...@@ -28,7 +29,7 @@ public class AuthWeiboRequest extends BaseAuthRequest { ...@@ -28,7 +29,7 @@ public class AuthWeiboRequest extends BaseAuthRequest {
} }
@Override @Override
protected String getAccessToken(String code) { protected AuthToken getAccessToken(String code) {
String accessTokenUrl = UrlBuilder.getWeiboAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); String accessTokenUrl = UrlBuilder.getWeiboAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri());
HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); HttpResponse response = HttpRequest.post(accessTokenUrl).execute();
String accessTokenStr = response.body(); String accessTokenStr = response.body();
...@@ -38,11 +39,14 @@ public class AuthWeiboRequest extends BaseAuthRequest { ...@@ -38,11 +39,14 @@ public class AuthWeiboRequest extends BaseAuthRequest {
} }
String accessToken = accessTokenObject.getString("access_token"); String accessToken = accessTokenObject.getString("access_token");
String uid = accessTokenObject.getString("uid"); String uid = accessTokenObject.getString("uid");
return String.format("uid=%s&access_token=%s", uid, accessToken); return AuthToken.builder()
.accessToken(String.format("uid=%s&access_token=%s", uid, accessToken))
.build();
} }
@Override @Override
protected AuthUser getUserInfo(String accessToken) { protected AuthUser getUserInfo(AuthToken authToken) {
String accessToken = authToken.getAccessToken();
HttpResponse response = HttpRequest.get(UrlBuilder.getWeiboUserInfoUrl(accessToken)) HttpResponse response = HttpRequest.get(UrlBuilder.getWeiboUserInfoUrl(accessToken))
.header("Authorization", "OAuth2 " + accessToken) .header("Authorization", "OAuth2 " + accessToken)
.header("API-RemoteIP", IpUtils.getIp()) .header("API-RemoteIP", IpUtils.getIp())
......
...@@ -5,6 +5,7 @@ import me.zhyd.oauth.config.AuthConfig; ...@@ -5,6 +5,7 @@ import me.zhyd.oauth.config.AuthConfig;
import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.exception.AuthException;
import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.model.AuthSource; import me.zhyd.oauth.model.AuthSource;
import me.zhyd.oauth.model.AuthToken;
import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUser;
import me.zhyd.oauth.utils.AuthConfigChecker; import me.zhyd.oauth.utils.AuthConfigChecker;
import me.zhyd.oauth.utils.UrlBuilder; import me.zhyd.oauth.utils.UrlBuilder;
...@@ -27,9 +28,9 @@ public abstract class BaseAuthRequest implements AuthRequest { ...@@ -27,9 +28,9 @@ public abstract class BaseAuthRequest implements AuthRequest {
} }
} }
protected abstract String getAccessToken(String code); protected abstract AuthToken getAccessToken(String code);
protected abstract AuthUser getUserInfo(String accessToken); protected abstract AuthUser getUserInfo(AuthToken authToken);
@Override @Override
public AuthResponse login(String code) { public AuthResponse login(String code) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册