diff --git a/README.en-US.md b/README.en-US.md index 7bea0fabc7ea7146e3046662e26b47cd4b37e8c7..3e1de396307ee97441e259c485c1f2baad9b5fd2 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -148,57 +148,6 @@ Note, that since [v1.14.0](https://gitee.com/yadong.zhang/JustAuth/releases/v1.1 ``` - -**Examples**: -- [Springboot Example](https://github.com/justauth/JustAuth-demo) -- [jFinal Example](https://github.com/xkcoding/jfinal-justauth-demo): by [xkcoding](https://github.com/xkcoding) -- [ActFramework Example](https://github.com/xkcoding/act-justauth-demo): by [xkcoding](https://github.com/xkcoding) -- [Nutzboot Example](https://github.com/EggsBlue/nutzboot-justauth-demo): by [蛋蛋](https://github.com/EggsBlue) -- [Blade Example](https://github.com/justauth/blade-justauth-demo) - -**Springboot Starter** - -- [justauth-spring-boot-starter](https://github.com/xkcoding/justauth-spring-boot-starter): Spring Boot integrates best practices with JustAuth by [xkcoding](https://github.com/xkcoding) -- [justauth-spring-boot-starter-demo](https://github.com/justauth/justauth-spring-boot-starter-demo): Justauth-spring-boot-starter demo project by [xkcoding](https://github.com/xkcoding) - -#### API -| :computer: platform | :coffee: API | :page_facing_up: Official document | -|:------:|:-------:|:-------:| -| | [AuthGiteeRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java) | 参考文档 | -| | [AuthGithubRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java) | 参考文档 | -| | [AuthWeiboRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java) | 参考文档 | -| | [AuthDingTalkRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java) | 参考文档 | -| | [AuthBaiduRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java) | 参考文档 | -| | [AuthCodingRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java) | 参考文档 | -| | [AuthTencentCloudRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthTencentCloudRequest.java) | 参考文档 | -| | [AuthOschinaRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java) | 参考文档 | -| | [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) | 参考文档 | -| | [AuthWeChatOpenRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java) | 参考文档 | -| | [AuthWeChatMpRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java) | 参考文档 | -| | [AuthWeChatEnterpriseRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java) | 参考文档 | -| | [AuthTaobaoRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java) | 参考文档 | -| | [AuthGoogleRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java) | 参考文档 | -| | [AuthFacebookRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java) | 参考文档 | -| | [AuthDouyinRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java) | 参考文档 | -| | [AuthLinkedinRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java) | 参考文档 | -| | [AuthMicrosoftRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java) | 参考文档 | -| | [AuthMiRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java) | 参考文档 | -| | [AuthToutiaoRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java) | 参考文档 | -| | [AuthTeambitionRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java) | 参考文档 | -| | [AuthRenrenRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java) | 参考文档 | -| | [AuthPinterestRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java) | 参考文档 | -| | [AuthStackOverflowRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java) | 参考文档 | -| | [AuthHuaweiRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java) | 参考文档 | -| | [AuthKujialeRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java) | 参考文档 | -| | [AuthGitlabRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java) | 参考文档 | -| | [AuthMeituanRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java) | 参考文档 | -| | [AuthElemeRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java) | 参考文档 | -| | [AuthTwitterRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java) | 参考文档 | -| | [AuthCsdnRequest](https://gitee.com/yadong.zhang/JustAuth/blob/master/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java) | 无 | - - - ## Contributions 1. Fork this project to your repository @@ -215,6 +164,10 @@ I look forward to your joining us. [contributors](https://docs.justauth.whnb.wang/#/contributors) +## Change Logs + +[CHANGELOGS](https://docs.justauth.whnb.wang/#/update) + ## Recommend - `spring-boot-demo` In-depth study and actual combat of spring boot projects: [https://github.com/xkcoding/spring-boot-demo](https://github.com/xkcoding/spring-boot-demo) diff --git a/README.md b/README.md index 0e1b0639190e129d681bfca8f561a9d951305d10..930d3cbef139e893f195d5591950167b5f20a3c1 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,10 @@ authRequest.login(callback); [contributors](https://docs.justauth.whnb.wang/#/contributors) +## 更新记录 + +[CHANGELOGS](https://docs.justauth.whnb.wang/#/update) + ## 致谢 在项目立项初期,也对当前开源圈的一些相同类型的项目作过调研,同时本项目也参考过这些项目,再次感谢开源圈内的朋友。 diff --git a/docs/_media/contributor/f4af112a.png b/docs/_media/contributor/f4af112a.png new file mode 100644 index 0000000000000000000000000000000000000000..1832cc122cb58718fcf63f43ec6dfd2bd2c2bdfd Binary files /dev/null and b/docs/_media/contributor/f4af112a.png differ diff --git a/docs/_media/oauth/2055a056.png b/docs/_media/oauth/2055a056.png new file mode 100644 index 0000000000000000000000000000000000000000..222fd022a81ec7a4389cd760e8d75378e9bbdd0d Binary files /dev/null and b/docs/_media/oauth/2055a056.png differ diff --git a/docs/_media/oauth/4f3da199.png b/docs/_media/oauth/4f3da199.png new file mode 100644 index 0000000000000000000000000000000000000000..59a963952f4a19559f9273d3426b8ea8a54edd23 Binary files /dev/null and b/docs/_media/oauth/4f3da199.png differ diff --git a/docs/_media/oauth/673628f8.png b/docs/_media/oauth/673628f8.png new file mode 100644 index 0000000000000000000000000000000000000000..ab122256d966396fef1f9fbf5b428291eeab492e Binary files /dev/null and b/docs/_media/oauth/673628f8.png differ diff --git a/docs/_media/oauth/7bc9ea47.png b/docs/_media/oauth/7bc9ea47.png new file mode 100644 index 0000000000000000000000000000000000000000..e5468d9433e6c04f6ddd4b4273e93e8f7716ed09 Binary files /dev/null and b/docs/_media/oauth/7bc9ea47.png differ diff --git a/docs/_media/oauth/930e0825.png b/docs/_media/oauth/930e0825.png new file mode 100644 index 0000000000000000000000000000000000000000..62aa374a96f9a447b15021a8dfdfa37024914d79 Binary files /dev/null and b/docs/_media/oauth/930e0825.png differ diff --git a/docs/_media/oauth/f44fb011.png b/docs/_media/oauth/f44fb011.png new file mode 100644 index 0000000000000000000000000000000000000000..fca71ad3006f1353be1b43011b2e9f88729056c1 Binary files /dev/null and b/docs/_media/oauth/f44fb011.png differ diff --git a/docs/_sidebar.md b/docs/_sidebar.md index e12a4e6f64c6415ea6af78010cdfdb2fec8adec2..c6d0b2c345135c5536a86e94cb31726328a65750 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -15,6 +15,7 @@ - [√ 酷家乐登录](oauth/kujiale.md) - [√ 推特登录](oauth/twitter.md) - [√ Coding登录](oauth/coding.md) + - [√ 阿里云登录](oauth/aliyun.md) - [CSDN登录](oauth/csdn.md) - [微信企业版登录](oauth/wechatEnterprise.md) - [微信公众平台登录](oauth/wechat_mp.md) diff --git a/docs/contributors.md b/docs/contributors.md index 58ed19bb68dd8fd480cf664cd689da492d2bc11b..8bfc18c5e7f733a55eacc5ca8978dceae8f270c3 100644 --- a/docs/contributors.md +++ b/docs/contributors.md @@ -31,6 +31,8 @@ - 增加飞书授权登录 - · runningzyp : [Github] - 修改文案错误 +- · Spet : [Github] + - 集成阿里云授权登录 - 千年等一回,我只为等你... ps: 如有遗漏,请告知 diff --git a/docs/oauth/aliyun.md b/docs/oauth/aliyun.md new file mode 100644 index 0000000000000000000000000000000000000000..a4929ea55775cba55ef1446d0030b019759bbbf3 --- /dev/null +++ b/docs/oauth/aliyun.md @@ -0,0 +1,181 @@ +## 1. 授权流程 +![](../_media/oauth/7bc9ea47.png) +1. 用户通过浏览器登录Web应用。 +2. Web应用重定向到阿里云OAuth 2.0服务并将URL返回给浏览器。 +注:如果用户还未登录,则会进一步重定向到阿里云登录服务。 +3. 用户通过浏览器登录阿里云OAuth 2.0服务并申请授权码。 +4. 阿里云OAuth 2.0服务重定向到Web应用并返回授权码给浏览器。 +5. 浏览器通过Web应用使用授权码向阿里云OAuth 2.0服务申请代表用户身份的令牌。 +6. 阿里云OAuth 2.0服务向Web应用返回令牌。 +7. Web应用通过获取的令牌向阿里云发起访问API的请求。 + +## 2. 配置应用 + +### 2.1 创建应用 + +1. 云账号登录[RAM控制台](https://ram.console.aliyun.com/?spm=a2c4g.11186623.2.8.46a779b5dxuzTy)。 +2. 在左侧导航栏,单击OAuth应用管理。 +3. 单击创建应用。 +4. 输入应用名称和应用显示名称。 +5. 选择应用类型。(这儿选择 WebApp 即可) + - WebApp: 指基于浏览器交互的网络应用。 + - NativeApp:指操作系统中运行的本地应用,主要为运行在桌面操作系统或移动操作系统中的应用。 + - ServerApp:指直接访问阿里云服务,而无需依赖用户登录的应用,目前仅支持基于SCIM协议的用户同步应用。示例请参见[通过SCIM协议将企业内部账号同步到阿里云RAM](https://help.aliyun.com/document_detail/162674.html?spm=a2c4g.11186623.2.9.46a779b5dxuzTy#task-2471389)。 +6. 根据需要修改访问令牌有效期时长。 +注:有效期可设置范围为:15分钟至3小时,默认为3600秒。 +7. 根据需要修改刷新令牌有效期时长。 +注:有效期可设置范围为:2小时至1年,默认为2592000秒。 +8. 输入回调地址。![](../_media/oauth/4f3da199.png) +9. 单击确定完成应用创建。 + +### 2.2 配置应用 OAuth 范围 + +![](../_media/oauth/f44fb011.png) + +如上,除了默认的 openid 外,再单独增加两条 scope: +- aliuid:阿里云颁发的唯一用户标志符 +- profile:用户的名称等个人信息 + +scope 对应获取的用户信息关系表如下: + +![](../_media/oauth/673628f8.png) + +### 2.3 配置密钥 + +应用创建完成后,进入应用详情: + +![](../_media/oauth/2055a056.png) + +切换到 “应用密钥” 选项页,创建密钥 + +![](../_media/oauth/930e0825.png) + +注:密钥创建完成后记得要保存,因为密钥只能在创建完成后明文显示一次,如丢失或者忘记,请重新创建。 + +## 3. 集成JustAuth + + +### 2.1 引入依赖 + +```xml + + me.zhyd.oauth + JustAuth + ${latest.version} + +``` + +`${latest.version}`表示当前最新的版本,可以在[这儿](https://github.com/justauth/JustAuth/releases)获取最新的版本信息。 + +### 2.2 创建Request + +```java +AuthRequest authRequest = new AuthAliyunRequest(AuthConfig.builder() + .clientId("APPID") + .clientSecret("应用私钥") + .alipayPublicKey("支付宝公钥") + .redirectUri("https://www.zhyd.me/oauth/callback/alipay") + .build()); +``` + +### 2.3 生成授权地址 + +我们可以直接使用以下方式生成第三方平台的授权链接: +```java +String authorizeUrl = authRequest.authorize(AuthStateUtils.createState()); +``` +这个链接我们可以直接后台重定向跳转,也可以返回到前端后,前端控制跳转。前端控制的好处就是,可以将第三方的授权页嵌入到iframe中,适配网站设计。 + + +### 2.4 以上完整代码如下 + +```java +import me.zhyd.oauth.config.AuthConfig; +import me.zhyd.oauth.request.AuthAliyunRequest; +import me.zhyd.oauth.model.AuthCallback; +import me.zhyd.oauth.request.AuthRequest; +import me.zhyd.oauth.utils.AuthStateUtils; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + + +@RestController +@RequestMapping("/oauth") +public class RestAuthController { + + @RequestMapping("/render") + public void renderAuth(HttpServletResponse response) throws IOException { + AuthRequest authRequest = getAuthRequest(); + response.sendRedirect(authRequest.authorize(AuthStateUtils.createState())); + } + + @RequestMapping("/callback") + public Object login(AuthCallback callback) { + AuthRequest authRequest = getAuthRequest(); + return authRequest.login(callback); + } + + private AuthRequest getAuthRequest() { + return new AuthAliyunRequest(AuthConfig.builder() + .clientId("APPID") + .clientSecret("应用私钥") + .redirectUri("回调地址") + .build()); + } +} +``` + +## 3. 授权结果 + +```json +{ + "code": 2000, + "msg": null, + "data": { + "uuid": "lmwxxxw==", + "username": "yadong.zhang0415@gmail.com", + "nickname": "root", + "avatar": null, + "blog": null, + "company": null, + "location": null, + "email": null, + "remark": null, + "gender": "UNKNOWN", + "source": "ALIYUN", + "token": { + "accessToken": "xxxx", + "expireIn": 3599, + "refreshToken": null, + "uid": null, + "openId": null, + "accessCode": null, + "unionId": null, + "scope": null, + "tokenType": "Bearer", + "idToken": "xxxxx", + "macAlgorithm": null, + "macKey": null, + "code": null, + "oauthToken": null, + "oauthTokenSecret": null, + "userId": null, + "screenName": null, + "oauthCallbackConfirmed": null + }, + "rawUserInfo": { + "sub": "lmwtxxxZ9ezw==", + "uid": "193xxx", + "login_name": "yadong.zhang0415@gmail.com", + "requestid": "544effc2-f7ba-4ac7-8af4-da2739e50e04", + "name": "root", + "bid": "2xxx42", + "aid": "193xxx" + } + } +} +``` \ No newline at end of file diff --git a/docs/oauth/coding.md b/docs/oauth/coding.md index 49e6399bd50c747dbc6c3d87f19b1f86fe08464f..4b096ca06b4d7cf7c34b8f18a0ac6a826d9da2ec 100644 --- a/docs/oauth/coding.md +++ b/docs/oauth/coding.md @@ -58,7 +58,7 @@ String authorizeUrl = authRequest.authorize(AuthStateUtils.createState()); ```java import me.zhyd.oauth.config.AuthConfig; -import me.zhyd.oauth.request.AuthWeiboRequest; +import me.zhyd.oauth.request.AuthCodingRequest; import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.request.AuthRequest; @@ -94,7 +94,7 @@ public class RestAuthController { } private AuthRequest getAuthRequest() { - return new AuthTencentCloudRequest(AuthConfig.builder() + return new AuthCodingRequest(AuthConfig.builder() .clientId("App Key") .clientSecret("App Secret") .redirectUri("授权回调页") diff --git a/docs/references.md b/docs/references.md index 79583b73378ba6e30e2007857e48f22d396586b7..81b8d068d32aa2b3b0e36144e674ffd755bf14ef 100644 --- a/docs/references.md +++ b/docs/references.md @@ -25,7 +25,7 @@ - Facebook - 抖音 - 领英 -- 微软 +- 微软 - 小米 - 头条 - Teambition @@ -41,3 +41,6 @@ - 用户信息 - 响应码 - Callback Urls规则 +- 阿里云 + - [Web应用登录阿里云](https://help.aliyun.com/document_detail/93696.html?spm=a2c4g.11186623.6.656.1a764138vhg4gr) + - [通过OIDC获取用户信息](https://help.aliyun.com/document_detail/93698.html?spm=a2c4g.11186623.6.658.537dd19eE1eEJh) \ No newline at end of file diff --git a/docs/update.md b/docs/update.md index f3478f4d3a604cc9ac5497c8c638fb2c580b41de..dde44934a2df763483f7f21684479d0f7809fc0e 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,9 +1,11 @@ ## 1.15.5-alpha ### 2020/06/07 -- 修复 +- BUG - 解决 `Microsoft` 授权失败的 BUG - 解决 `Coding` 个人账号授权失败的 BUG(目前只能使用团队模式进行授权,需要传入团队名,参考`AuthConfig#codingGroupName`) + - 解决 `AuthLinkedinRequest#getAvatar` NPE 的问题。(领英用户没有头像时,原代码会报 NPE) - 新增 + - AuthUser 中新增 `rawUserInfo`,用来存放第三方平台返回的原始用户数据。注:淘宝平台的`rawUserInfo`为一个空 JSON - 支持 Http 级的代理配置,使用方式: ```java new AuthGoogleRequest(AuthConfig.builder() @@ -17,15 +19,23 @@ new AuthGoogleRequest(AuthConfig.builder() .build()) .build()); ``` +- 修改 + - 删除 - 删除**腾讯云登录**。coding 已并入 腾讯云,因此只保留 coding 登录 - 文档 - 新增 [Coding登录](oauth/coding.md)文档 - 完善 [支付宝登录](oauth/alipay.md)文档 + - 完善 [贡献者名单](contributors.md)文档 + - 完善 [参考文档](references.md)文档 - PR - 合并 [Gitee!17](https://gitee.com/yadong.zhang/JustAuth/pulls/17) - 合并 [Gitee!15](https://gitee.com/yadong.zhang/JustAuth/pulls/15) - + - 合并 [Github#81](https://github.com/justauth/JustAuth/pull/81) +- Issues + - 解决 [Github#80](https://github.com/justauth/JustAuth/issues/80) + - 解决 [Github#75](https://github.com/justauth/JustAuth/issues/75) + ## 1.15.4-alpha ### 2020/05/13 - 修复 diff --git a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java index 1794bf345996ba85aef39a6cb7c7a95c6bb3cdf1..c47b6dc844759a445f17d8e65f31bf0a888d0b9e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthAlipayRequest.java @@ -1,5 +1,6 @@ package me.zhyd.oauth.request; +import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; @@ -80,6 +81,7 @@ public class AuthAlipayRequest extends AuthDefaultRequest { String location = String.format("%s %s", StringUtils.isEmpty(province) ? "" : province, StringUtils.isEmpty(city) ? "" : city); return AuthUser.builder() + .rawUserInfo(JSONObject.parseObject(JSONObject.toJSONString(response))) .uuid(response.getUserId()) .username(StringUtils.isEmpty(response.getUserName()) ? response.getNickName() : response.getUserName()) .nickname(response.getNickName()) diff --git a/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java b/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java index 137c237a6b3d2213f05f156809210762d1fe6236..6cb651f7d1019b325cfa0f609170d09d4306ef42 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthAliyunRequest.java @@ -4,14 +4,17 @@ import com.alibaba.fastjson.JSONObject; import me.zhyd.oauth.cache.AuthStateCache; import me.zhyd.oauth.config.AuthConfig; import me.zhyd.oauth.config.AuthDefaultSource; +import me.zhyd.oauth.enums.AuthUserGender; import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; +import me.zhyd.oauth.utils.UrlBuilder; /** * 阿里云登录 * - * @see 阿里云授权(OAuth)文档 + * @author snippet0809 (https://github.com/snippet0809) + * @since 1.15.5 */ public class AuthAliyunRequest extends AuthDefaultRequest { @@ -36,23 +39,19 @@ public class AuthAliyunRequest extends AuthDefaultRequest { .build(); } - /* - * 用户信息示例(主账号登录时) - * { - * "sub":"PPPpppP+NRsXg/aaAaAAaA==", - * "uid":"1222222222222222", - * "login_name":"阿里云1234", - * "requestid":"6f6af0f2-0f98-4410-a4b0-83bd5e1c1506", - * "name":"root", - * "bid":"22222", - * "aid":"1222222222222222" - * } - */ @Override protected AuthUser getUserInfo(AuthToken authToken) { String userInfo = doGetUserInfo(authToken); - JSONObject jsonObject = JSONObject.parseObject(userInfo); - return AuthUser.builder().rawUserInfo(jsonObject).build(); + JSONObject object = JSONObject.parseObject(userInfo); + return AuthUser.builder() + .rawUserInfo(object) + .uuid(object.getString("sub")) + .username(object.getString("login_name")) + .nickname(object.getString("name")) + .gender(AuthUserGender.UNKNOWN) + .token(authToken) + .source(source.toString()) + .build(); } } diff --git a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java index 0ad7fad9f5499139eb0cad5d20013f534c2c607a..4e8f5c83dafb1ffefd0870bb54ce43355f30194c 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthBaiduRequest.java @@ -50,6 +50,7 @@ public class AuthBaiduRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(userInfo); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.containsKey("userid") ? object.getString("userid") : object.getString("openid")) .username(object.getString("username")) .nickname(object.getString("username")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java index ca974a505c991a96acce5853bcef5527ccdcc88c..8acf798299dcd229a7188b7c743eedbb865441de 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCodingRequest.java @@ -47,6 +47,7 @@ public class AuthCodingRequest extends AuthDefaultRequest { object = object.getJSONObject("data"); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("name")) .avatar("https://coding.net" + object.getString("avatar")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java index fab84f37b71453395aab9bb02343502f9daf1973..074a38d0b7de9958371e1d1372bd999f3e8a08e9 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthCsdnRequest.java @@ -41,6 +41,7 @@ public class AuthCsdnRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(response); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("username")) .username(object.getString("username")) .remark(object.getString("description")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java index 1332e995c4d836f84f89c39edbd3693247f67088..56e550b1ccf8d8defda9f5b67b6e728f72eca11a 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDingTalkRequest.java @@ -51,6 +51,7 @@ public class AuthDingTalkRequest extends AuthDefaultRequest { .unionId(object.getString("unionid")) .build(); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("unionid")) .nickname(object.getString("nick")) .username(object.getString("nick")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java index 6529829c2be134c4f900d4ddd281a0c2ec2805b1..b8c1a38a9038a210d374f61966ba9a983daeb055 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthDouyinRequest.java @@ -41,15 +41,16 @@ public class AuthDouyinRequest extends AuthDefaultRequest { String response = doGetUserInfo(authToken); JSONObject userInfoObject = JSONObject.parseObject(response); this.checkResponse(userInfoObject); - JSONObject dataObj = userInfoObject.getJSONObject("data"); + JSONObject object = userInfoObject.getJSONObject("data"); return AuthUser.builder() - .uuid(dataObj.getString("union_id")) - .username(dataObj.getString("nickname")) - .nickname(dataObj.getString("nickname")) - .avatar(dataObj.getString("avatar")) - .remark(dataObj.getString("description")) - .gender(AuthUserGender.getRealGender(dataObj.getString("gender"))) - .location(String.format("%s %s %s", dataObj.getString("country"), dataObj.getString("province"), dataObj.getString("city"))) + .rawUserInfo(object) + .uuid(object.getString("union_id")) + .username(object.getString("nickname")) + .nickname(object.getString("nickname")) + .avatar(object.getString("avatar")) + .remark(object.getString("description")) + .gender(AuthUserGender.getRealGender(object.getString("gender"))) + .location(String.format("%s %s %s", object.getString("country"), object.getString("object"), object.getString("city"))) .token(authToken) .source(source.toString()) .build(); diff --git a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java index 579d4411a7e3b1897b8d435b7f1f9f0f332b47a4..bb2d02e0bfea88b2109e5b01e913d47b26114e44 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthElemeRequest.java @@ -106,6 +106,7 @@ public class AuthElemeRequest extends AuthDefaultRequest { JSONObject result = object.getJSONObject("result"); return AuthUser.builder() + .rawUserInfo(result) .uuid(result.getString("userId")) .username(result.getString("userName")) .nickname(result.getString("userName")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java index d192110c6428b7065127abb608dcbfe196ee57c2..6224629ef1640eeac4ff74696273d287709daac5 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthFacebookRequest.java @@ -45,6 +45,7 @@ public class AuthFacebookRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(userInfo); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("name")) .nickname(object.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java b/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java index 93689edd9fe4fb706e7f696e75319c8ac2d062fa..65567245273702a97f57d5533107a358542892b2 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthFeishuRequest.java @@ -56,11 +56,12 @@ public class AuthFeishuRequest extends AuthDefaultRequest { String response = new HttpUtils(config.getHttpConfig()).get(source.userInfo(), null, new HttpHeader() .add("Content-Type", "application/json") .add("Authorization", "Bearer " + accessToken), false); - JSONObject jsonObject = JSON.parseObject(response); + JSONObject object = JSON.parseObject(response); return AuthUser.builder() - .avatar(jsonObject.getString("AvatarUrl")) - .username(jsonObject.getString("Mobile")) - .email(jsonObject.getString("Email")) + .rawUserInfo(object) + .avatar(object.getString("AvatarUrl")) + .username(object.getString("Mobile")) + .email(object.getString("Email")) .nickname("Name") .build(); } diff --git a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java index 9f95f0b15a29d7a94f5e5684e000bd4d2ac95043..0a21cecbc90ffd7276217f239ed6e3097cbec739 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGiteeRequest.java @@ -46,6 +46,7 @@ public class AuthGiteeRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(userInfo); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("login")) .avatar(object.getString("avatar_url")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java index 98a616b2be3bb51ca85d8a3447df4fd3ccac32a3..1db81019310a1e2c754d93868a605da2be400f6f 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGithubRequest.java @@ -51,6 +51,7 @@ public class AuthGithubRequest extends AuthDefaultRequest { this.checkResponse(object.containsKey("error"), object.getString("error_description")); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("login")) .avatar(object.getString("avatar_url")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java index 7c5f0b467348cee4ee5c51a3d2854ca7457cbafd..f27e64594cb9d2d308685b1262caf668095bedb7 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGitlabRequest.java @@ -51,6 +51,7 @@ public class AuthGitlabRequest extends AuthDefaultRequest { this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("username")) .nickname(object.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java index e3e9c6332c5824876015f2cfc216337d12725088..181eb1b62251b686150d1317517bd71907d9e88d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthGoogleRequest.java @@ -51,6 +51,7 @@ public class AuthGoogleRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(userInfo); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("sub")) .username(object.getString("email")) .avatar(object.getString("picture")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java index 5fbeec3d213877ca394e7d3daccf3f72c052d33b..b6b10fc2c975c5e1f2d5c610cfc4e605766f0a8e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthHuaweiRequest.java @@ -79,6 +79,7 @@ public class AuthHuaweiRequest extends AuthDefaultRequest { AuthUserGender gender = getRealGender(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("userID")) .username(object.getString("userName")) .nickname(object.getString("userName")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java index 7fd18d46c544696db038a1f55380d8a96629f8a2..830ba0f1ab47e3c738406359478386c2e34f8f84 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthJdRequest.java @@ -76,6 +76,7 @@ public class AuthJdRequest extends AuthDefaultRequest { JSONObject data = this.getUserDataJsonObject(object); return AuthUser.builder() + .rawUserInfo(data) .uuid(authToken.getOpenId()) .username(data.getString("nickName")) .nickname(data.getString("nickName")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java index 2c9caa9b5585e202f05824fbb4f31a1d6710af3d..d0e751bfa5faf0019e89733496de3091aae9276d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthKujialeRequest.java @@ -101,6 +101,7 @@ public class AuthKujialeRequest extends AuthDefaultRequest { JSONObject resultObject = object.getJSONObject("d"); return AuthUser.builder() + .rawUserInfo(resultObject) .username(resultObject.getString("userName")) .nickname(resultObject.getString("userName")) .avatar(resultObject.getString("avatar")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java index ba255cdccaec95045d93fd87b56ec2cd3438304e..3a2292aa9133b0ab7659851eeef1bc81711e758d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthLinkedinRequest.java @@ -3,7 +3,6 @@ package me.zhyd.oauth.request; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONPath; -import me.zhyd.oauth.utils.HttpUtils; import com.xkcoding.http.constants.Constants; import com.xkcoding.http.support.HttpHeader; import me.zhyd.oauth.cache.AuthStateCache; @@ -16,6 +15,7 @@ import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; +import me.zhyd.oauth.utils.HttpUtils; import me.zhyd.oauth.utils.StringUtils; import me.zhyd.oauth.utils.UrlBuilder; @@ -62,6 +62,7 @@ public class AuthLinkedinRequest extends AuthDefaultRequest { // 获取用户邮箱地址 String email = this.getUserEmail(accessToken); return AuthUser.builder() + .rawUserInfo(userInfoObject) .uuid(userInfoObject.getString("id")) .username(userName) .nickname(userName) @@ -103,17 +104,27 @@ public class AuthLinkedinRequest extends AuthDefaultRequest { * @return 用户的头像地址 */ private String getAvatar(JSONObject userInfoObject) { - String avatar = null; JSONObject profilePictureObject = userInfoObject.getJSONObject("profilePicture"); - if (profilePictureObject.containsKey("displayImage~")) { - JSONArray displayImageElements = profilePictureObject.getJSONObject("displayImage~") - .getJSONArray("elements"); - if (null != displayImageElements && displayImageElements.size() > 0) { - JSONObject largestImageObj = displayImageElements.getJSONObject(displayImageElements.size() - 1); - avatar = largestImageObj.getJSONArray("identifiers").getJSONObject(0).getString("identifier"); - } + if (null == profilePictureObject || !profilePictureObject.containsKey("displayImage~")) { + return null; + } + JSONObject displayImageObject = profilePictureObject.getJSONObject("displayImage~"); + if (null == displayImageObject || !displayImageObject.containsKey("elements")) { + return null; + } + JSONArray displayImageElements = displayImageObject.getJSONArray("elements"); + if (null == displayImageElements || displayImageElements.isEmpty()) { + return null; + } + JSONObject largestImageObj = displayImageElements.getJSONObject(displayImageElements.size() - 1); + if (null == largestImageObj || !largestImageObj.containsKey("identifiers")) { + return null; + } + JSONArray identifiers = largestImageObj.getJSONArray("identifiers"); + if (null == identifiers || identifiers.isEmpty()) { + return null; } - return avatar; + return identifiers.getJSONObject(0).getString("identifier"); } /** diff --git a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java index 6ebff5789d2dcd73223e56f96594dd83b8d8d5fc..bdbbc4d02bb9160801f6323be6609de2e95f0230 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMeituanRequest.java @@ -66,6 +66,7 @@ public class AuthMeituanRequest extends AuthDefaultRequest { this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("openid")) .username(object.getString("nickname")) .nickname(object.getString("nickname")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java index 878083f4a0eaebc959a828794c052abae3934613..bee937bcb0ac84ad3854b87e97b5a37ce403f01e 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMiRequest.java @@ -71,14 +71,15 @@ public class AuthMiRequest extends AuthDefaultRequest { throw new AuthException(userProfile.getString("description")); } - JSONObject user = userProfile.getJSONObject("data"); + JSONObject object = userProfile.getJSONObject("data"); AuthUser authUser = AuthUser.builder() + .rawUserInfo(object) .uuid(authToken.getOpenId()) - .username(user.getString("miliaoNick")) - .nickname(user.getString("miliaoNick")) - .avatar(user.getString("miliaoIcon")) - .email(user.getString("mail")) + .username(object.getString("miliaoNick")) + .nickname(object.getString("miliaoNick")) + .avatar(object.getString("miliaoIcon")) + .email(object.getString("mail")) .gender(AuthUserGender.UNKNOWN) .token(authToken) .source(source.toString()) diff --git a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java index 61390fbce82db96fdf5ba3db467bbeee787b09ba..dbc75c6670d4f66791503335b8961445bb7e6003 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthMicrosoftRequest.java @@ -88,6 +88,7 @@ public class AuthMicrosoftRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(userInfo); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("userPrincipalName")) .nickname(object.getString("displayName")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java index 4019ad829f0eecec774e18ce3a8209f216c5582a..af5eb4e0319e15e7fa1f639619a1a86c7ca30707 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthOschinaRequest.java @@ -46,6 +46,7 @@ public class AuthOschinaRequest extends AuthDefaultRequest { JSONObject object = JSONObject.parseObject(response); this.checkResponse(object); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("name")) .nickname(object.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java index c3fd0b5f60bbbd3ba51f232e925b687d9c49bc57..dc1d22307745f0daccc317a26078188ffd6f4287 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthPinterestRequest.java @@ -53,6 +53,7 @@ public class AuthPinterestRequest extends AuthDefaultRequest { this.checkResponse(object); JSONObject userObj = object.getJSONObject("data"); return AuthUser.builder() + .rawUserInfo(userObj) .uuid(userObj.getString("id")) .avatar(getAvatarUrl(userObj)) .username(userObj.getString("username")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java index f2c1b777f9e0bfdc0e03d5f0fdaf0e3e965adee7..59cc275e2d6fd0434b0110fd0ff311d535f6b821 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthQqRequest.java @@ -61,6 +61,7 @@ public class AuthQqRequest extends AuthDefaultRequest { String location = String.format("%s-%s", object.getString("province"), object.getString("city")); return AuthUser.builder() + .rawUserInfo(object) .username(object.getString("nickname")) .nickname(object.getString("nickname")) .avatar(avatar) diff --git a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java index 55d7d81bc9014f8fc9eb437e8ff80bce487aa51f..66238761eff2e65f3d9b604d9a801064d24b1d72 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthRenrenRequest.java @@ -46,6 +46,7 @@ public class AuthRenrenRequest extends AuthDefaultRequest { JSONObject userObj = JSONObject.parseObject(response).getJSONObject("response"); return AuthUser.builder() + .rawUserInfo(userObj) .uuid(userObj.getString("id")) .avatar(getAvatarUrl(userObj)) .nickname(userObj.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java index 27c3f2812716a468e27bea408f67e17e76512ed7..9c301bb2748cf387b82eac80ca10009adb9b0dd0 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthStackOverflowRequest.java @@ -64,6 +64,7 @@ public class AuthStackOverflowRequest extends AuthDefaultRequest { JSONObject userObj = object.getJSONArray("items").getJSONObject(0); return AuthUser.builder() + .rawUserInfo(userObj) .uuid(userObj.getString("user_id")) .avatar(userObj.getString("profile_image")) .location(userObj.getString("location")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java index 6d8ef09b2bd5fb87b1b4fdc225e50e7b24d6954d..92505aae857147b95399298f1590954901bb12d4 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java @@ -48,6 +48,7 @@ public class AuthTaobaoRequest extends AuthDefaultRequest { String nick = GlobalAuthUtils.urlDecode(accessTokenObject.getString("taobao_user_nick")); return AuthUser.builder() + .rawUserInfo(new JSONObject()) .uuid(accessTokenObject.getString("taobao_user_id")) .username(nick) .nickname(nick) diff --git a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java index cb6a743cfa04e6b6566308046cd5c46c0369af62..ccb092386b41967728776580e931c8da62d6d7b6 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTeambitionRequest.java @@ -71,6 +71,7 @@ public class AuthTeambitionRequest extends AuthDefaultRequest { authToken.setUid(object.getString("_id")); return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("_id")) .username(object.getString("name")) .nickname(object.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java index 999f7748b7d58de7ce089a7cdedcb0b7df24b092..ef6a84b8dbc589d76f4a59b5891793ea43025698 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthToutiaoRequest.java @@ -56,6 +56,7 @@ public class AuthToutiaoRequest extends AuthDefaultRequest { String anonymousUserName = "匿名用户"; return AuthUser.builder() + .rawUserInfo(user) .uuid(user.getString("uid")) .username(isAnonymousUser ? anonymousUserName : user.getString("screen_name")) .nickname(isAnonymousUser ? anonymousUserName : user.getString("screen_name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java b/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java index 65ba5cac84d5f6722fbb65f538a673c96fb6fcb3..abb6c56714caad6aaa1716bc1546f65bdb4f75c4 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthTwitterRequest.java @@ -138,6 +138,7 @@ public class AuthTwitterRequest extends AuthDefaultRequest { JSONObject userInfo = JSONObject.parseObject(response); return AuthUser.builder() + .rawUserInfo(userInfo) .uuid(userInfo.getString("id_str")) .username(userInfo.getString("screen_name")) .nickname(userInfo.getString("name")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java index 389be7a24fc59506a69157dd7f353c6afea235d2..799d5a0b9aa88e3100d02c91f04ea796e6632624 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseRequest.java @@ -63,6 +63,7 @@ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest { JSONObject userDetail = this.checkResponse(userDetailResponse); return AuthUser.builder() + .rawUserInfo(userDetail) .username(userDetail.getString("name")) .nickname(userDetail.getString("alias")) .avatar(userDetail.getString("avatar")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java index 8b78bd100bb5562a73020aaa8ddd64a7676d9534..8538b5d66a66379b11352d313fff70af9ba69413 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java @@ -57,6 +57,7 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest { } return AuthUser.builder() + .rawUserInfo(object) .username(object.getString("nickname")) .nickname(object.getString("nickname")) .avatar(object.getString("headimgurl")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java index e04bda9d271e3e86ce13c71f8b4192313e40ecdc..bc8a26363cf88a9f92b0d4d1dcdd94c18c8b2e1d 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatOpenRequest.java @@ -56,6 +56,7 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest { } return AuthUser.builder() + .rawUserInfo(object) .username(object.getString("nickname")) .nickname(object.getString("nickname")) .avatar(object.getString("headimgurl")) diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java index 362645bc7407800dd6f3350156494f8dcbcb920a..1f18c83ab7912368206ffa1ecd5f4ef8dd214ee5 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeiboRequest.java @@ -64,6 +64,7 @@ public class AuthWeiboRequest extends AuthDefaultRequest { throw new AuthException(object.getString("error")); } return AuthUser.builder() + .rawUserInfo(object) .uuid(object.getString("id")) .username(object.getString("name")) .avatar(object.getString("profile_image_url"))