From 39b113b194f74f2b80774ff6f75d3a30414b8493 Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Sun, 15 Aug 2021 22:51:14 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E8=A7=A3=E5=86=B3=20Line=20=E7=9A=84?= =?UTF-8?q?=20bug=E3=80=82Github=20Issue=20(#122)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhyd/oauth/request/AuthLineRequest.java | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java index fe545b8..7cbb2e8 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthLineRequest.java @@ -37,7 +37,22 @@ public class AuthLineRequest extends AuthDefaultRequest { @Override protected AuthToken getAccessToken(AuthCallback authCallback) { - return this.getToken(accessTokenUrl(authCallback.getCode())); + Map params = new HashMap<>(); + params.put("grant_type", "authorization_code"); + params.put("code", authCallback.getCode()); + params.put("redirect_uri", config.getRedirectUri()); + params.put("client_id", config.getClientId()); + params.put("client_secret", config.getClientSecret()); + String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false); + JSONObject accessTokenObject = JSONObject.parseObject(response); + return AuthToken.builder() + .accessToken(accessTokenObject.getString("access_token")) + .refreshToken(accessTokenObject.getString("refresh_token")) + .expireIn(accessTokenObject.getIntValue("expires_in")) + .idToken(accessTokenObject.getString("id_token")) + .scope(accessTokenObject.getString("scope")) + .tokenType(accessTokenObject.getString("token_type")) + .build(); } @Override @@ -74,28 +89,23 @@ public class AuthLineRequest extends AuthDefaultRequest { @Override public AuthResponse refresh(AuthToken oldToken) { + Map params = new HashMap<>(); + params.put("grant_type", "refresh_token"); + params.put("refresh_token", oldToken.getRefreshToken()); + params.put("client_id", config.getClientId()); + params.put("client_secret", config.getClientSecret()); + String response = new HttpUtils(config.getHttpConfig()).post(source.accessToken(), params, false); + JSONObject accessTokenObject = JSONObject.parseObject(response); return AuthResponse.builder() .code(AuthResponseStatus.SUCCESS.getCode()) - .data(this.getToken(refreshTokenUrl(oldToken.getRefreshToken()))) - .build(); - } - - /** - * 获取token,适用于获取access_token和刷新token - * - * @param accessTokenUrl 实际请求token的地址 - * @return token对象 - */ - private AuthToken getToken(String accessTokenUrl) { - String response = new HttpUtils(config.getHttpConfig()).post(accessTokenUrl); - JSONObject accessTokenObject = JSONObject.parseObject(response); - return AuthToken.builder() - .accessToken(accessTokenObject.getString("access_token")) - .refreshToken(accessTokenObject.getString("refresh_token")) - .expireIn(accessTokenObject.getIntValue("expires_in")) - .idToken(accessTokenObject.getString("id_token")) - .scope(accessTokenObject.getString("scope")) - .tokenType(accessTokenObject.getString("token_type")) + .data(AuthToken.builder() + .accessToken(accessTokenObject.getString("access_token")) + .refreshToken(accessTokenObject.getString("refresh_token")) + .expireIn(accessTokenObject.getIntValue("expires_in")) + .idToken(accessTokenObject.getString("id_token")) + .scope(accessTokenObject.getString("scope")) + .tokenType(accessTokenObject.getString("token_type")) + .build()) .build(); } -- GitLab