From 438660621e9f5b6077f5d3850b6eb624588a168c Mon Sep 17 00:00:00 2001 From: skqing <569141948@qq.com> Date: Tue, 18 Jun 2019 14:20:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=92=89=E9=92=89?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=20https:?= =?UTF-8?q?//gitee.com/yadong.zhang/JustAuth/issues/IY1Z3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oauth/request/AuthDingTalkRequest.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index f2ac937..1779545 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -2,7 +2,8 @@ package me.zhyd.oauth.request; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; -import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.exception.AuthException; import me.zhyd.oauth.model.AuthDingTalkErrorCode; @@ -12,8 +13,6 @@ import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.GlobalAuthUtil; import me.zhyd.oauth.utils.UrlBuilder; -import java.util.Objects; - /** * 钉钉登录 * @@ -40,20 +39,22 @@ public class AuthDingTalkRequest extends BaseAuthRequest { // 根据timestamp, appSecret计算签名值 String stringToSign = System.currentTimeMillis() + ""; String urlEncodeSignature = GlobalAuthUtil.generateDingTalkSignature(config.getClientSecret(), stringToSign); + JSONObject param = new JSONObject(); + param.put("tmp_auth_code", code); HttpResponse response = HttpRequest.post(UrlBuilder.getDingTalkUserInfoUrl(urlEncodeSignature, stringToSign, config.getClientId())) - .body(Objects.requireNonNull(new JSONObject().put("tmp_auth_code", code))) + .body(param.toJSONString()) .execute(); String userInfo = response.body(); - JSONObject object = new JSONObject(userInfo); - AuthDingTalkErrorCode errorCode = AuthDingTalkErrorCode.getErrorCode(object.getInt("errcode")); + JSONObject object = JSON.parseObject(userInfo); + AuthDingTalkErrorCode errorCode = AuthDingTalkErrorCode.getErrorCode(object.getIntValue("errcode")); if (!AuthDingTalkErrorCode.EC0.equals(errorCode)) { throw new AuthException(errorCode.getDesc()); } object = object.getJSONObject("user_info"); return AuthUser.builder() - .uuid(object.getStr("openid")) - .nickname(object.getStr("nick")) - .username(object.getStr("nick")) + .uuid(object.getString("openid")) + .nickname(object.getString("nick")) + .username(object.getString("nick")) .source(AuthSource.DINGTALK) .build(); } -- Gitee From 56df9bc1b009957a82d0567e56f797e034bd1ece Mon Sep 17 00:00:00 2001 From: skqing <569141948@qq.com> Date: Tue, 18 Jun 2019 14:55:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=92=88=E5=AF=B9=E9=92=89=E9=92=89?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=A2=9E=E5=8A=A0AuthToken=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhyd/oauth/request/AuthDingTalkRequest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index 1779545..6470c50 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -51,11 +51,15 @@ public class AuthDingTalkRequest extends BaseAuthRequest { throw new AuthException(errorCode.getDesc()); } object = object.getJSONObject("user_info"); + AuthToken token = AuthToken.builder() + .openId(object.getString("openid")) + .build(); return AuthUser.builder() - .uuid(object.getString("openid")) + .uuid(object.getString("unionid")) .nickname(object.getString("nick")) .username(object.getString("nick")) .source(AuthSource.DINGTALK) + .token(token) .build(); } } -- Gitee