Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OnlyOne_X
JustAuth
提交
e81e9213
J
JustAuth
项目概览
OnlyOne_X
/
JustAuth
与 Fork 源项目一致
Fork自
justauth / JustAuth
通知
1
Star
1
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,发现更多精彩内容 >>
提交
e81e9213
编写于
5月 22, 2019
作者:
不合群的混子
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🐛
修复QQ登录,返回AccessToken以及OpenId数据格式解析错误问题
上级
85afd754
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
6 deletion
+18
-6
src/main/java/me/zhyd/oauth/request/AuthQqRequest.java
src/main/java/me/zhyd/oauth/request/AuthQqRequest.java
+18
-6
未找到文件。
src/main/java/me/zhyd/oauth/request/AuthQqRequest.java
浏览文件 @
e81e9213
package
me.zhyd.oauth.request
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpResponse
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -9,9 +10,12 @@ import me.zhyd.oauth.model.AuthSource;
import
me.zhyd.oauth.model.AuthToken
;
import
me.zhyd.oauth.model.AuthUser
;
import
me.zhyd.oauth.model.AuthUserGender
;
import
me.zhyd.oauth.utils.GlobalAuthUtil
;
import
me.zhyd.oauth.utils.StringUtils
;
import
me.zhyd.oauth.utils.UrlBuilder
;
import
java.util.Map
;
/**
* qq登录
*
...
...
@@ -26,14 +30,17 @@ public class AuthQqRequest extends BaseAuthRequest {
@Override
protected
AuthToken
getAccessToken
(
String
code
)
{
String
accessTokenUrl
=
UrlBuilder
.
getQqAccessTokenUrl
(
config
.
getClientId
(),
config
.
getClientSecret
(),
code
,
config
.
getRedirectUri
());
HttpResponse
response
=
HttpRequest
.
post
(
accessTokenUrl
).
execute
();
JSONObject
accessTokenObject
=
JSONObject
.
parseObject
(
response
.
body
());
String
accessTokenUrl
=
UrlBuilder
.
getQqAccessTokenUrl
(
config
.
getClientId
(),
config
.
getClientSecret
(),
code
,
config
.
getRedirectUri
());
HttpResponse
response
=
HttpRequest
.
get
(
accessTokenUrl
).
execute
();
Map
<
String
,
String
>
accessTokenObject
=
GlobalAuthUtil
.
parseStringToMap
(
response
.
body
());
if
(!
accessTokenObject
.
containsKey
(
"access_token"
))
{
throw
new
AuthException
(
"Unable to get token from qq using code ["
+
code
+
"]"
);
}
return
AuthToken
.
builder
()
.
accessToken
(
accessTokenObject
.
getString
(
"access_token"
))
.
accessToken
(
accessTokenObject
.
get
(
"access_token"
))
.
expireIn
(
Integer
.
valueOf
(
accessTokenObject
.
get
(
"expires_in"
)))
.
refreshToken
(
accessTokenObject
.
get
(
"refresh_token"
))
.
build
();
}
...
...
@@ -61,9 +68,14 @@ public class AuthQqRequest extends BaseAuthRequest {
}
private
String
getOpenId
(
String
accessToken
)
{
HttpResponse
response
=
HttpRequest
.
get
(
UrlBuilder
.
getQqOpenidUrl
(
"https://graph.qq.com/oauth2.0/me"
,
accessToken
)).
execute
();
HttpResponse
response
=
HttpRequest
.
get
(
UrlBuilder
.
getQqOpenidUrl
(
"https://graph.qq.com/oauth2.0/me"
,
accessToken
))
.
execute
();
if
(
response
.
isOk
())
{
JSONObject
object
=
JSONObject
.
parseObject
(
response
.
body
());
String
body
=
response
.
body
();
String
removePrefix
=
StrUtil
.
replace
(
body
,
"callback("
,
""
);
String
removeSuffix
=
StrUtil
.
replace
(
removePrefix
,
");"
,
""
);
String
openId
=
StrUtil
.
trim
(
removeSuffix
);
JSONObject
object
=
JSONObject
.
parseObject
(
openId
);
if
(
object
.
containsKey
(
"openid"
))
{
return
object
.
getString
(
"openid"
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录