From 6186236a13cff818ec95bd5f98a76f90eaedff81 Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Fri, 17 May 2019 19:13:11 +0800 Subject: [PATCH] =?UTF-8?q?:alien:=20=E5=90=88=E5=B9=B6wechat=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../zhyd/oauth/request/AuthWeChatRequest.java | 47 ++++++------------- 2 files changed, 15 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 7e2576b..5e20f53 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ authRequest.login("code"); | | [AuthAlipayRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java) | 参考文档 | | | [AuthQqRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java) | 参考文档 | | | [AuthCsdnRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java) | 待续 | -| | AuthWechatRequest | 待续 | +| | [AuthWeChatRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java) | 待续 | ## 后续开发计划 diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java index 257afaa..5e4ca9c 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatRequest.java @@ -5,10 +5,7 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; 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.AuthUser; -import me.zhyd.oauth.model.AuthUserGender; +import me.zhyd.oauth.model.*; import me.zhyd.oauth.utils.UrlBuilder; /** @@ -36,7 +33,7 @@ public class AuthWeChatRequest extends BaseAuthRequest { * @return 所有信息 */ @Override - protected String getAccessToken(String code) { + protected AuthToken getAccessToken(String code) { String accessTokenUrl = UrlBuilder.getWeChatAccessTokenUrl(config.getClientId(), config.getClientSecret(), code); HttpResponse response = HttpRequest.get(accessTokenUrl).execute(); JSONObject accessTokenObject = JSONObject.parseObject(response.body()); @@ -44,15 +41,20 @@ public class AuthWeChatRequest extends BaseAuthRequest { .containsKey("refresh_token")) { throw new AuthException("Unable to get access_token or openid or refresh_token from wechat using code [" + code + "]"); } - return response.body(); + JSONObject object = JSONObject.parseObject(response.body()); + return AuthToken.builder() + .accessToken(object.getString("access_token")) + .refreshToken(object.getString("refresh_token")) + .openId(object.getString("openid")) + .build(); } @Override - protected AuthUser getUserInfo(String accessToken) { - String token = this.getToken(accessToken); - String openId = this.getOpenId(accessToken); + protected AuthUser getUserInfo(AuthToken authToken) { + String accessToken = authToken.getAccessToken(); + String openId = authToken.getOpenId(); - HttpResponse response = HttpRequest.get(UrlBuilder.getWeChatUserInfoUrl(token, openId)).execute(); + HttpResponse response = HttpRequest.get(UrlBuilder.getWeChatUserInfoUrl(accessToken, openId)).execute(); JSONObject object = JSONObject.parseObject(response.body()); if (object.containsKey("errcode")) { throw new AuthException(object.getString("errmsg")); @@ -69,15 +71,9 @@ public class AuthWeChatRequest extends BaseAuthRequest { .build(); } - /** - * 刷新access token (续期) - * - * @param accessToken 登录成功后返回的accessToken - * @return AuthResponse - */ @Override - public AuthResponse refresh(String accessToken) { - String refreshToken = getRefreshToken(accessToken); + public AuthResponse refresh(AuthToken authToken) { + String refreshToken = authToken.getRefreshToken(); HttpResponse response = HttpRequest.get(UrlBuilder.getWeChatRefreshUrl(config.getClientId(), refreshToken)) .execute(); @@ -88,19 +84,4 @@ public class AuthWeChatRequest extends BaseAuthRequest { return AuthResponse.builder().data(object).build(); } - - private String getRefreshToken(String accessToken) { - JSONObject accessTokenObject = JSONObject.parseObject(accessToken); - return accessTokenObject.getString("refresh_token"); - } - - private String getOpenId(String accessToken) { - JSONObject accessTokenObject = JSONObject.parseObject(accessToken); - return accessTokenObject.getString("openid"); - } - - private String getToken(String accessToken) { - JSONObject accessTokenObject = JSONObject.parseObject(accessToken); - return accessTokenObject.getString("access_token"); - } } -- GitLab