mirror of
https://gitee.com/yadong.zhang/JustAuth.git
synced 2025-12-06 08:48:27 +08:00
📝 修复“淘宝”平台授权登录后没有uid的问题、增加刷新token的功能
This commit is contained in:
parent
e8db2dd282
commit
4c8fdbae49
@ -2,11 +2,12 @@
|
|||||||
|
|
||||||
### 2021/6/3
|
### 2021/6/3
|
||||||
|
|
||||||
- 发布 v1.16.1
|
- 发布 v1.16.2
|
||||||
- 新增
|
- 新增
|
||||||
- 集成“程序员客栈”平台登录
|
- 集成“程序员客栈”平台登录
|
||||||
- 修改
|
- 修改
|
||||||
- 更新文档
|
- 更新文档
|
||||||
|
- 修复“淘宝”平台授权登录后没有`uid`的问题、增加刷新token的功能
|
||||||
|
|
||||||
## 1.16.1
|
## 1.16.1
|
||||||
|
|
||||||
|
|||||||
@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import me.zhyd.oauth.cache.AuthStateCache;
|
import me.zhyd.oauth.cache.AuthStateCache;
|
||||||
import me.zhyd.oauth.config.AuthConfig;
|
import me.zhyd.oauth.config.AuthConfig;
|
||||||
import me.zhyd.oauth.config.AuthDefaultSource;
|
import me.zhyd.oauth.config.AuthDefaultSource;
|
||||||
|
import me.zhyd.oauth.enums.AuthResponseStatus;
|
||||||
import me.zhyd.oauth.enums.AuthUserGender;
|
import me.zhyd.oauth.enums.AuthUserGender;
|
||||||
import me.zhyd.oauth.exception.AuthException;
|
import me.zhyd.oauth.exception.AuthException;
|
||||||
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
import me.zhyd.oauth.model.AuthToken;
|
import me.zhyd.oauth.model.AuthToken;
|
||||||
import me.zhyd.oauth.model.AuthUser;
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
import me.zhyd.oauth.utils.GlobalAuthUtils;
|
import me.zhyd.oauth.utils.GlobalAuthUtils;
|
||||||
|
import me.zhyd.oauth.utils.HttpUtils;
|
||||||
|
import me.zhyd.oauth.utils.StringUtils;
|
||||||
import me.zhyd.oauth.utils.UrlBuilder;
|
import me.zhyd.oauth.utils.UrlBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,6 +37,26 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
|||||||
return AuthToken.builder().accessCode(authCallback.getCode()).build();
|
return AuthToken.builder().accessCode(authCallback.getCode()).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AuthToken getAuthToken(JSONObject object) {
|
||||||
|
this.checkResponse(object);
|
||||||
|
|
||||||
|
return AuthToken.builder()
|
||||||
|
.accessToken(object.getString("access_token"))
|
||||||
|
.expireIn(object.getIntValue("expires_in"))
|
||||||
|
.tokenType(object.getString("token_type"))
|
||||||
|
.idToken(object.getString("id_token"))
|
||||||
|
.refreshToken(object.getString("refresh_token"))
|
||||||
|
.uid(object.getString("taobao_user_id"))
|
||||||
|
.openId(object.getString("taobao_open_uid"))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkResponse(JSONObject object) {
|
||||||
|
if (object.containsKey("error")) {
|
||||||
|
throw new AuthException(object.getString("error_description"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AuthUser getUserInfo(AuthToken authToken) {
|
protected AuthUser getUserInfo(AuthToken authToken) {
|
||||||
String response = doPostAuthorizationCode(authToken.getAccessCode());
|
String response = doPostAuthorizationCode(authToken.getAccessCode());
|
||||||
@ -40,16 +64,12 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
|||||||
if (accessTokenObject.containsKey("error")) {
|
if (accessTokenObject.containsKey("error")) {
|
||||||
throw new AuthException(accessTokenObject.getString("error_description"));
|
throw new AuthException(accessTokenObject.getString("error_description"));
|
||||||
}
|
}
|
||||||
authToken.setAccessToken(accessTokenObject.getString("access_token"));
|
authToken = this.getAuthToken(accessTokenObject);
|
||||||
authToken.setRefreshToken(accessTokenObject.getString("refresh_token"));
|
|
||||||
authToken.setExpireIn(accessTokenObject.getIntValue("expires_in"));
|
|
||||||
authToken.setUid(accessTokenObject.getString("taobao_user_id"));
|
|
||||||
authToken.setOpenId(accessTokenObject.getString("taobao_open_uid"));
|
|
||||||
|
|
||||||
String nick = GlobalAuthUtils.urlDecode(accessTokenObject.getString("taobao_user_nick"));
|
String nick = GlobalAuthUtils.urlDecode(accessTokenObject.getString("taobao_user_nick"));
|
||||||
return AuthUser.builder()
|
return AuthUser.builder()
|
||||||
.rawUserInfo(new JSONObject())
|
.rawUserInfo(accessTokenObject)
|
||||||
.uuid(accessTokenObject.getString("taobao_user_id"))
|
.uuid(StringUtils.isEmpty(authToken.getUid()) ? authToken.getOpenId() : authToken.getUid())
|
||||||
.username(nick)
|
.username(nick)
|
||||||
.nickname(nick)
|
.nickname(nick)
|
||||||
.gender(AuthUserGender.UNKNOWN)
|
.gender(AuthUserGender.UNKNOWN)
|
||||||
@ -58,6 +78,17 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AuthResponse refresh(AuthToken oldToken) {
|
||||||
|
String tokenUrl = refreshTokenUrl(oldToken.getRefreshToken());
|
||||||
|
String response = new HttpUtils(config.getHttpConfig()).post(tokenUrl);
|
||||||
|
JSONObject accessTokenObject = JSONObject.parseObject(response);
|
||||||
|
return AuthResponse.builder()
|
||||||
|
.code(AuthResponseStatus.SUCCESS.getCode())
|
||||||
|
.data(this.getAuthToken(accessTokenObject))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state}
|
* 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state}
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user