diff --git a/README.md b/README.md
index 7e2576b7b70bdb57ddfcd4fd1af7a9a06901528e..5e20f533675f31897c934c539948d0e71fbbab22 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 257afaa37c8e25143f9e83f470158080ec78d503..5e4ca9c6c74b148bcc1f71d979e66564b11cbd9f 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");
- }
}