Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
星火飞花
JustAuth
提交
4c8fdbae
J
JustAuth
项目概览
星火飞花
/
JustAuth
与 Fork 源项目一致
Fork自
justauth / JustAuth
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JustAuth
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4c8fdbae
编写于
7月 06, 2021
作者:
智布道
👁
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
📝
修复“淘宝”平台授权登录后没有`uid`的问题、增加刷新token的功能
上级
e8db2dd2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
8 deletion
+40
-8
CHANGELOGS.md
CHANGELOGS.md
+2
-1
src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java
src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java
+38
-7
未找到文件。
CHANGELOGS.md
浏览文件 @
4c8fdbae
...
...
@@ -2,11 +2,12 @@
### 2021/6/3
-
发布 v1.16.
1
-
发布 v1.16.
2
-
新增
-
集成“程序员客栈”平台登录
-
修改
-
更新文档
-
修复“淘宝”平台授权登录后没有
`uid`
的问题、增加刷新token的功能
## 1.16.1
...
...
src/main/java/me/zhyd/oauth/request/AuthTaobaoRequest.java
浏览文件 @
4c8fdbae
...
...
@@ -4,12 +4,16 @@ 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.AuthResponseStatus
;
import
me.zhyd.oauth.enums.AuthUserGender
;
import
me.zhyd.oauth.exception.AuthException
;
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.GlobalAuthUtils
;
import
me.zhyd.oauth.utils.HttpUtils
;
import
me.zhyd.oauth.utils.StringUtils
;
import
me.zhyd.oauth.utils.UrlBuilder
;
/**
...
...
@@ -33,6 +37,26 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
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
protected
AuthUser
getUserInfo
(
AuthToken
authToken
)
{
String
response
=
doPostAuthorizationCode
(
authToken
.
getAccessCode
());
...
...
@@ -40,16 +64,12 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
if
(
accessTokenObject
.
containsKey
(
"error"
))
{
throw
new
AuthException
(
accessTokenObject
.
getString
(
"error_description"
));
}
authToken
.
setAccessToken
(
accessTokenObject
.
getString
(
"access_token"
));
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"
));
authToken
=
this
.
getAuthToken
(
accessTokenObject
);
String
nick
=
GlobalAuthUtils
.
urlDecode
(
accessTokenObject
.
getString
(
"taobao_user_nick"
));
return
AuthUser
.
builder
()
.
rawUserInfo
(
new
JSONObject
()
)
.
uuid
(
accessTokenObject
.
getString
(
"taobao_user_id"
))
.
rawUserInfo
(
accessTokenObject
)
.
uuid
(
StringUtils
.
isEmpty
(
authToken
.
getUid
())
?
authToken
.
getOpenId
()
:
authToken
.
getUid
(
))
.
username
(
nick
)
.
nickname
(
nick
)
.
gender
(
AuthUserGender
.
UNKNOWN
)
...
...
@@ -58,6 +78,17 @@ public class AuthTaobaoRequest extends AuthDefaultRequest {
.
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}
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录