1
0
mirror of synced 2026-04-20 08:28:37 +08:00

集成酷家乐

This commit is contained in:
yadong.zhang
2019-09-03 09:14:50 +08:00
parent 2be048ef0e
commit ee1b6c8c5f
9 changed files with 48 additions and 35 deletions

View File

@@ -571,7 +571,7 @@ public enum AuthSource {
/**
* 酷家乐
*
* @since 1.10.1
* @since 1.11.0
*/
KUJIALE {
@Override

View File

@@ -16,9 +16,10 @@ import me.zhyd.oauth.utils.StringUtils;
import me.zhyd.oauth.utils.UrlBuilder;
/**
* 酷家乐授权登录
*
* @author shahuang
* @Date: 2019/8/29 18:50
* @since 1.10.1
* @since 1.11.0
*/
public class AuthKujialeRequest extends AuthDefaultRequest {
@@ -33,9 +34,10 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
/**
* 返回带{@code state}参数的授权url授权回调时会带上这个{@code state}
* 默认只向用户请求用户信息授权
*
* @param state state 验证授权流程的参数可以防止csrf
* @return 返回授权地址
* @since 1.10.1
* @since 1.11.0
*/
@Override
public String authorize(String state) {
@@ -44,10 +46,11 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
/**
* 请求授权url
* @param state state 验证授权流程的参数可以防止csrf
*
* @param state state 验证授权流程的参数可以防止csrf
* @param scopeStr 请求用户授权时向用户显示的可进行授权的列表。如果要填写多个接口名称,请用逗号隔开
* 参考https://open.kujiale.com/open/apps/2/docs?doc_id=95#Step1%EF%BC%9A%E8%8E%B7%E5%8F%96Authorization%20Code参数表内的scope字段
* @return
* @return authorize url
*/
public String authorize(String state, String scopeStr) {
UrlBuilder urlBuilder = UrlBuilder.fromBaseUrl(source.authorize())
@@ -68,11 +71,7 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
}
private AuthToken getAuthToken(HttpResponse response) {
String accessTokenStr = response.body();
JSONObject accessTokenObject = JSONObject.parseObject(accessTokenStr);
if (!"0".equals(accessTokenObject.getString("c"))) {
throw new AuthException(accessTokenObject.getString("m"));
}
JSONObject accessTokenObject = checkResponse(response);
JSONObject resultObject = accessTokenObject.getJSONObject("d");
return AuthToken.builder()
.accessToken(resultObject.getString("accessToken"))
@@ -81,6 +80,15 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
.build();
}
private JSONObject checkResponse(HttpResponse response) {
String accessTokenStr = response.body();
JSONObject accessTokenObject = JSONObject.parseObject(accessTokenStr);
if (!"0".equals(accessTokenObject.getString("c"))) {
throw new AuthException(accessTokenObject.getString("m"));
}
return accessTokenObject;
}
@Override
public AuthUser getUserInfo(AuthToken authToken) {
String openId = this.getOpenId(authToken);
@@ -114,11 +122,7 @@ public class AuthKujialeRequest extends AuthDefaultRequest {
HttpResponse response = HttpRequest.get(UrlBuilder.fromBaseUrl("https://oauth.kujiale.com/oauth2/auth/user")
.queryParam("access_token", authToken.getAccessToken())
.build()).execute();
String accessTokenStr = response.body();
JSONObject accessTokenObject = JSONObject.parseObject(accessTokenStr);
if (!"0".equals(accessTokenObject.getString("c"))) {
throw new AuthException(accessTokenObject.getString("m"));
}
JSONObject accessTokenObject = checkResponse(response);
return accessTokenObject.getString("d");
}