From 188c52ca6b8b9aee84001b9a868efe7948825bfb Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Fri, 17 May 2019 18:37:57 +0800 Subject: [PATCH] =?UTF-8?q?:ok=5Fhand:=20=E4=BF=AE=E6=94=B9=E8=8E=B7?= =?UTF-8?q?=E5=8F=96accessToken=E6=97=B6=E7=9A=84=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=E4=B8=BA=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++++++++ .../java/me/zhyd/oauth/model/AuthToken.java | 5 +++++ .../zhyd/oauth/request/AuthAlipayRequest.java | 10 +++++++--- .../zhyd/oauth/request/AuthBaiduRequest.java | 12 ++++++++---- .../zhyd/oauth/request/AuthCodingRequest.java | 10 +++++++--- .../me/zhyd/oauth/request/AuthCsdnRequest.java | 10 +++++++--- .../oauth/request/AuthDingTalkRequest.java | 18 +++++++----------- .../zhyd/oauth/request/AuthGiteeRequest.java | 10 +++++++--- .../zhyd/oauth/request/AuthGithubRequest.java | 10 +++++++--- .../zhyd/oauth/request/AuthOschinaRequest.java | 10 +++++++--- .../me/zhyd/oauth/request/AuthQqRequest.java | 10 +++++++--- .../me/zhyd/oauth/request/AuthRequest.java | 9 +++++---- .../oauth/request/AuthTencentCloudRequest.java | 10 +++++++--- .../zhyd/oauth/request/AuthWeiboRequest.java | 10 +++++++--- .../me/zhyd/oauth/request/BaseAuthRequest.java | 5 +++-- 15 files changed, 102 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index dd4fc4b..7e2576b 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,17 @@ authRequest.login("code"); 待续 +# 交流 + +| 微信(备注:加群) | 公众号 | +| :------------: | :------------: | +| | | + + **QQ群** + +[![](https://images.gitee.com/uploads/images/2019/0129/191256_a40bceba_784199.png)](https://shang.qq.com/wpa/qunwpa?idkey=3571c554a143eff1e15807de033a240196c6b493b25b903d1d37571cfb6040aa) + + ## 请喝咖啡 | 支付宝 | 微信 | diff --git a/src/main/java/me/zhyd/oauth/model/AuthToken.java b/src/main/java/me/zhyd/oauth/model/AuthToken.java index febb4c3..88ad0f3 100644 --- a/src/main/java/me/zhyd/oauth/model/AuthToken.java +++ b/src/main/java/me/zhyd/oauth/model/AuthToken.java @@ -15,4 +15,9 @@ public class AuthToken { private String expireIn; private String refreshToken; private String uid; + private String openId; + /** + * 针对钉钉 + */ + private String accessCode; } diff --git a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java index d1a5763..d9ce145 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java @@ -11,6 +11,7 @@ import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.consts.ApiUrl; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.StringUtils; @@ -32,7 +33,7 @@ public class AuthAlipayRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); request.setGrantType("authorization_code"); request.setCode(code); @@ -45,11 +46,14 @@ public class AuthAlipayRequest extends BaseAuthRequest { if (!response.isSuccess()) { throw new AuthException(response.getSubMsg()); } - return response.getAccessToken(); + return AuthToken.builder() + .accessToken(response.getAccessToken()) + .build(); } @Override - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest(); AlipayUserInfoShareResponse response = null; try { diff --git a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java index 204278a..79299c6 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java @@ -22,7 +22,7 @@ public class AuthBaiduRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getBaiduAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); @@ -30,11 +30,14 @@ public class AuthBaiduRequest extends BaseAuthRequest { if (!AuthBaiduErrorCode.OK.equals(errorCode)) { throw new AuthException(errorCode.getDesc()); } - return accessTokenObject.getString("access_token"); + return AuthToken.builder() + .accessToken(accessTokenObject.getString("access_token")) + .build(); } @Override - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduUserInfoUrl(accessToken)).execute(); String userInfo = response.body(); JSONObject object = JSONObject.parseObject(userInfo); @@ -52,7 +55,8 @@ public class AuthBaiduRequest extends BaseAuthRequest { } @Override - public AuthResponse revoke(String accessToken) { + public AuthResponse revoke(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getBaiduRevokeUrl(accessToken)).execute(); String userInfo = response.body(); JSONObject object = JSONObject.parseObject(userInfo); diff --git a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java index 063e9c8..6af8bf1 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.UrlBuilder; @@ -24,18 +25,21 @@ public class AuthCodingRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getCodingAccessTokenUrl(config.getClientId(), config.getClientSecret(), code); HttpResponse response = HttpRequest.get(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (accessTokenObject.getIntValue("code") != 0) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getCodingUserInfoUrl(accessToken)).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.getIntValue("code") != 0) { diff --git a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java index 1f205c7..d529e11 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.UrlBuilder; @@ -23,18 +24,21 @@ public class AuthCsdnRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getCsdnAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (accessTokenObject.containsKey("error_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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getCsdnUserInfoUrl(accessToken)).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.containsKey("error_code")) { diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index a35003c..a9671e8 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -6,8 +6,8 @@ import cn.hutool.json.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthDingTalkErrorCode; -import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.UrlBuilder; @@ -28,12 +28,15 @@ public class AuthDingTalkRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { - throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); + protected AuthToken getAccessToken(String code) { + return AuthToken.builder() + .accessCode(code) + .build(); } @Override - protected AuthUser getUserInfo(String code) { + protected AuthUser getUserInfo(AuthToken authToken) { + String code = authToken.getAccessCode(); // 根据timestamp, appSecret计算签名值 String stringToSign = System.currentTimeMillis() + ""; String urlEncodeSignature = GlobalAuthUtil.generateDingTalkSignature(config.getClientSecret(), stringToSign); @@ -52,11 +55,4 @@ public class AuthDingTalkRequest extends BaseAuthRequest { .source(AuthSource.DINGTALK) .build(); } - - @Override - public AuthResponse login(String code) { - return AuthResponse.builder() - .data(this.getUserInfo(code)) - .build(); - } } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java index 025a703..557a8e2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.UrlBuilder; @@ -23,18 +24,21 @@ public class AuthGiteeRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getGiteeAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (accessTokenObject.containsKey("error")) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getGiteeUserInfoUrl(accessToken)).execute(); String userInfo = response.body(); JSONObject object = JSONObject.parseObject(userInfo); diff --git a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java index 5bed3a0..3f6b344 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.UrlBuilder; @@ -26,18 +27,21 @@ public class AuthGithubRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getGithubAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); Map res = GlobalAuthUtil.parseStringToMap(response.body()); if (res.containsKey("error")) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getGithubUserInfoUrl(accessToken)).execute(); String userInfo = response.body(); JSONObject object = JSONObject.parseObject(userInfo); diff --git a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java index 1cdf679..061310f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.UrlBuilder; @@ -24,18 +25,21 @@ public class AuthOschinaRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getOschinaAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (accessTokenObject.containsKey("error")) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getOschinaUserInfoUrl(accessToken)).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.containsKey("error")) { diff --git a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java index 6b470aa..d65a678 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.StringUtils; @@ -24,18 +25,21 @@ public class AuthQqRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getQqAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); if (!accessTokenObject.containsKey("access_token")) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); String openId = this.getOpenId(accessToken); HttpResponse response = HttpRequest.get(UrlBuilder.getQqUserInfoUrl(accessToken, openId)).execute(); JSONObject object = JSONObject.parseObject(response.body()); diff --git a/src/main/java/me/zhyd/oauth/request/AuthRequest.java b/src/main/java/me/zhyd/oauth/request/AuthRequest.java index bef6ce2..38f3dd5 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthRequest.java @@ -2,6 +2,7 @@ package me.zhyd.oauth.request; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthResponse; +import me.zhyd.oauth.model.AuthToken; /** * @author yadong.zhang (yadong.zhang0415(a)gmail.com) @@ -32,20 +33,20 @@ public interface AuthRequest { /** * 撤销授权 * - * @param accessToken 登录成功后返回的accessToken + * @param authToken 登录成功后返回的Token信息 * @return AuthResponse */ - default AuthResponse revoke(String accessToken) { + default AuthResponse revoke(AuthToken authToken) { throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); } /** * 刷新access token (续期) * - * @param accessToken 登录成功后返回的accessToken + * @param authToken 登录成功后返回的Token信息 * @return AuthResponse */ - default AuthResponse refresh(String accessToken) { + default AuthResponse refresh(AuthToken authToken) { throw new AuthException(ResponseStatus.NOT_IMPLEMENTED); } } diff --git a/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java index 1a6370c..ef3d99e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.UrlBuilder; @@ -24,18 +25,21 @@ public class AuthTencentCloudRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getTencentCloudAccessTokenUrl(config.getClientId(), config.getClientSecret(), code); HttpResponse response = HttpRequest.get(accessTokenUrl).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.getIntValue("code") != 0) { 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getTencentCloudUserInfoUrl(accessToken)).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.getIntValue("code") != 0) { diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java index 1f120e4..12d51a2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.model.AuthUserGender; import me.zhyd.oauth.utils.GlobalAuthUtil; @@ -28,7 +29,7 @@ public class AuthWeiboRequest extends BaseAuthRequest { } @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getWeiboAccessTokenUrl(config.getClientId(), config.getClientSecret(), code, config.getRedirectUri()); HttpResponse response = HttpRequest.post(accessTokenUrl).execute(); String accessTokenStr = response.body(); @@ -38,11 +39,14 @@ public class AuthWeiboRequest extends BaseAuthRequest { } String accessToken = accessTokenObject.getString("access_token"); 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 - protected AuthUser getUserInfo(String accessToken) { + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getWeiboUserInfoUrl(accessToken)) .header("Authorization", "OAuth2 " + accessToken) .header("API-RemoteIP", IpUtils.getIp()) diff --git a/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java b/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java index a661e49..1d2bb3b 100644 --- a/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java +++ b/src/main/java/me/zhyd/oauth/request/BaseAuthRequest.java @@ -5,6 +5,7 @@ import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthSource; +import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.AuthConfigChecker; import me.zhyd.oauth.utils.UrlBuilder; @@ -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 public AuthResponse login(String code) { -- GitLab