Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kuyz
JustAuth
提交
28466f8a
J
JustAuth
项目概览
kuyz
/
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,发现更多精彩内容 >>
提交
28466f8a
编写于
5月 13, 2020
作者:
智布道
👁
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
📝
更新在线文档内容
上级
c6bd5d9e
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
198 addition
and
2 deletion
+198
-2
docs/Q&A.md
docs/Q&A.md
+11
-0
docs/_404.md
docs/_404.md
+5
-2
docs/_sidebar.md
docs/_sidebar.md
+2
-0
docs/explain.md
docs/explain.md
+7
-0
docs/oauth/twitter.md
docs/oauth/twitter.md
+104
-0
docs/references.md
docs/references.md
+43
-0
docs/thx.md
docs/thx.md
+3
-0
docs/update.md
docs/update.md
+23
-0
未找到文件。
docs/Q&A.md
浏览文件 @
28466f8a
...
@@ -150,4 +150,15 @@ AuthRequest authRequest = new AuthQqRequest(AuthConfig.builder()
...
@@ -150,4 +150,15 @@ AuthRequest authRequest = new AuthQqRequest(AuthConfig.builder()
ps: 我要去祭天了
ps: 我要去祭天了
## 13. 为什么集成国外平台时,一直提示 `connect time out`?
所有国外平台都无法直接通过java进行访问API,目前
[
simple-http
](
https://github.com/xkcoding/simple-http
)
Release版本,暂不支持添加代理,所以目前需要手动开启代理。
代理开启的方式:
```
java
System
.
setProperty
(
"proxyPort"
,
"10080"
);
System
.
setProperty
(
"proxyHost"
,
"127.0.0.1"
);
```
以上代码可以在声明
`AuthRequest`
时创建,也可以全局执行。
本地如果支持科学上网,就用自己本地的代理端口即可,如果不支持科学上网,可以去网上找一些免费的代理IP进行测试(请自行操作)。
docs/_404.md
浏览文件 @
28466f8a
# :alien: 404:alien:
# :alien: 404:alien:
**非常感谢您对JustAuth的关注**
,您现在查询的内容,作者
正在补充
中!
**非常感谢您对JustAuth的关注**
,您现在查询的内容,作者
**正在补充**
中!
您可能对以下文章感兴趣:
###
您可能对以下文章感兴趣:
-
[
OAuth的授权流程是什么样的?
](
https://docs.justauth.whnb.wang/#/oauth
)
-
[
OAuth的授权流程是什么样的?
](
https://docs.justauth.whnb.wang/#/oauth
)
-
[
如何使用JustAuth?
](
https://docs.justauth.whnb.wang/#/how-to-use
)
-
[
如何使用JustAuth?
](
https://docs.justauth.whnb.wang/#/how-to-use
)
...
@@ -25,6 +25,9 @@
...
@@ -25,6 +25,9 @@
-
[
酷家乐登录
](
oauth/kujiale.md
)
-
[
酷家乐登录
](
oauth/kujiale.md
)
-
更多文章,正在补充中...
-
更多文章,正在补充中...
### 其他资料
-
[
参考文档
](
references.md
)
### 如果还是没有您想要的内容,您可以:
### 如果还是没有您想要的内容,您可以:
...
...
docs/_sidebar.md
浏览文件 @
28466f8a
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
-
[
√ 微博登录
](
oauth/weibo.md
)
-
[
√ 微博登录
](
oauth/weibo.md
)
-
[
√ 支付宝登录
](
oauth/alipay.md
)
-
[
√ 支付宝登录
](
oauth/alipay.md
)
-
[
√ 酷家乐登录
](
oauth/kujiale.md
)
-
[
√ 酷家乐登录
](
oauth/kujiale.md
)
-
[
√ 推特登录
](
oauth/twitter.md
)
-
[
CSDN登录
](
oauth/csdn.md
)
-
[
CSDN登录
](
oauth/csdn.md
)
-
[
微信企业版登录
](
oauth/wechatEnterprise.md
)
-
[
微信企业版登录
](
oauth/wechatEnterprise.md
)
-
[
微信公众平台登录
](
oauth/wechat_mp.md
)
-
[
微信公众平台登录
](
oauth/wechat_mp.md
)
...
@@ -46,4 +47,5 @@
...
@@ -46,4 +47,5 @@
-
[
JustAuth与现有用户系统整合
](
extended/justauth_integrated_with_the_existing_account_system.md
)
-
[
JustAuth与现有用户系统整合
](
extended/justauth_integrated_with_the_existing_account_system.md
)
-
[
Who is using
](
users.md
)
-
[
Who is using
](
users.md
)
-
[
致谢
](
thx.md
)
-
[
致谢
](
thx.md
)
-
[
参考文档
](
references.md
)
-
[
更新记录
](
update.md
)
-
[
更新记录
](
update.md
)
docs/explain.md
浏览文件 @
28466f8a
...
@@ -19,6 +19,13 @@
...
@@ -19,6 +19,13 @@
-
`stackOverflowKey`
Stack Overflow 登陆时需单独提供的key,由
**第三方平台颁发**
-
`stackOverflowKey`
Stack Overflow 登陆时需单独提供的key,由
**第三方平台颁发**
-
`agentId`
企业微信登陆时需单独提供该值,由
**第三方平台颁发**
,为授权方的网页应用ID
-
`agentId`
企业微信登陆时需单独提供该值,由
**第三方平台颁发**
,为授权方的网页应用ID
-
`source`
JustAuth支持的第三方平台,比如:GITHUB、GITEE等
-
`source`
JustAuth支持的第三方平台,比如:GITHUB、GITEE等
-
`uuid`
一般为第三方平台的用户ID。以下几个平台需特别注意:
-
钉钉、抖音:
`uuid`
为用户的
`unionid`
-
微信公众平台登录、京东、酷家乐、美团:
`uuid`
为用户的
`openId`
-
微信开放平台登录、QQ:
`uuid`
为用户的
`openId`
,平台支持获取
`unionid`
,
`unionid`
在
`AuthToken`
中(如果支持),在登录完成后,可以通过
`response.getData().getToken().getUnionId()`
获取
-
Google:
`uuid`
为用户的
`sub`
,
`sub`
为Google的所有账户体系中用户唯一的身份标识符,详见:
[
OpenID Connect
](
https://developers.google.com/identity/protocols/oauth2/openid-connect
)
注:建议通过
`uuid`
+
`source`
的方式唯一确定一个用户,这样可以解决用户身份归属的问题。因为 单个用户ID 在某一平台中是唯一的,但不能保证在所有平台中都是唯一的。
## 参考资料
## 参考资料
...
...
docs/oauth/twitter.md
0 → 100644
浏览文件 @
28466f8a
## 1. 申请应用
参考文章:
[
twitter三方登录的实现
](
https://my.oschina.net/u/3361217/blog/1438877
)
,只需关注创建应用部分即可。
copy以下三个信息:
`App ID`
、
`App Key`
和
`网站回调域`
。
> 友情提示:twitter现不支持个人用户创建应用
## 2. 集成JustAuth
### 2.1 引入依赖
```
xml
<dependency>
<groupId>
me.zhyd.oauth
</groupId>
<artifactId>
JustAuth
</artifactId>
<version>
${latest.version}
</version>
</dependency>
```
`${latest.version}`
表示当前最新的版本,可以在
[
这儿
](
https://github.com/justauth/JustAuth/releases
)
获取最新的版本信息。
### 2.2 创建Request
```
java
// 国外平台 目前必须要手动配置代理
System
.
setProperty
(
"proxyPort"
,
"10080"
);
System
.
setProperty
(
"proxyHost"
,
"127.0.0.1"
);
AuthRequest
authRequest
=
new
AuthTwitterRequest
(
AuthConfig
.
builder
()
.
clientId
(
"App ID"
)
.
clientSecret
(
"App Key"
)
.
redirectUri
(
"网站回调域"
)
.
build
());
```
> 特别注意:所有国外平台都无法直接通过java进行访问API,目前[simple-http](https://github.com/xkcoding/simple-http) Release版本,暂不支持添加代理,所以目前需要手动开启代理。
代理开启的方式:
```
java
System
.
setProperty
(
"proxyPort"
,
"10080"
);
System
.
setProperty
(
"proxyHost"
,
"127.0.0.1"
);
```
以上代码可以在声明
`AuthRequest`
时创建,也可以全局执行。
本地如果支持科学上网,就用自己本地的代理端口即可,如果不支持科学上网,可以去网上找一些免费的代理IP进行测试(请自行操作)。
### 2.3 生成授权地址
我们可以直接使用以下方式生成第三方平台的授权链接:
```
java
String
authorizeUrl
=
authRequest
.
authorize
(
AuthStateUtils
.
createState
());
```
这个链接我们可以直接后台重定向跳转,也可以返回到前端后,前端控制跳转。前端控制的好处就是,可以将第三方的授权页嵌入到iframe中,适配网站设计。
### 2.4 以上完整代码如下
```
java
import
me.zhyd.oauth.config.AuthConfig
;
import
me.zhyd.oauth.request.AuthTwitterRequest
;
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
()
{
// 国外平台 目前必须要手动配置代理
System
.
setProperty
(
"proxyPort"
,
"10080"
);
System
.
setProperty
(
"proxyHost"
,
"127.0.0.1"
);
return
new
AuthTwitterRequest
(
AuthConfig
.
builder
()
.
clientId
(
"App ID"
)
.
clientSecret
(
"App Key"
)
.
redirectUri
(
"网站回调域"
)
.
build
());
}
}
```
## 3. 授权结果
暂无
\ No newline at end of file
docs/references.md
0 → 100644
浏览文件 @
28466f8a
## OAuth 文档
关于OAuth2相关的内容、原理可以自行参阅以下资料:
-
[
The OAuth 2.0 Authorization Framework
](
https://tools.ietf.org/html/rfc6749
)
-
[
OAuth 2.0
](
https://oauth.net/2/
)
## 第三方平台的API文档
-
<a
href=
"https://gitee.com/api/v5/oauth_doc#list_1"
target=
"_blank"
>
Gitee
</a>
-
<a
href=
"https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/"
target=
"_blank"
>
Github
</a>
-
<a
href=
"https://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E"
target=
"_blank"
>
新浪微博
</a>
-
<a
href=
"https://open-doc.dingtalk.com/microapp/serverapi2/kymkv6"
target=
"_blank"
>
钉钉
</a>
-
<a
href=
"http://developer.baidu.com/wiki/index.php?title=docs/oauth"
target=
"_blank"
>
百度
</a>
-
<a
href=
"https://open.coding.net/references/oauth/"
target=
"_blank"
>
coding
</a>
-
<a
href=
"https://dev.tencent.com/help/doc/faq/b4e5b7aee786/oauth"
target=
"_blank"
>
腾讯云
</a>
-
<a
href=
"https://www.oschina.net/openapi/docs/oauth2_authorize"
target=
"_blank"
>
开源中国
</a>
-
<a
href=
"https://alipay.open.taobao.com/docs/doc.htm?spm=a219a.7629140.0.0.336d4b70GUKXOl&treeId=193&articleId=105809&docType=1"
target=
"_blank"
>
支付宝
</a>
-
<a
href=
"https://wiki.connect.qq.com/%E4%BD%BF%E7%94%A8authorization_code%E8%8E%B7%E5%8F%96access_token"
target=
"_blank"
>
QQ
</a>
-
<a
href=
"https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN"
target=
"_blank"
>
微信开放平台
</a>
-
<a
href=
"https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html"
target=
"_blank"
>
微信公众平台
</a>
-
<a
href=
"https://open.work.weixin.qq.com/api/doc#90000/90135/90664"
target=
"_blank"
>
企业微信
</a>
-
<a
href=
"https://open.taobao.com/doc.htm?spm=a219a.7386797.0.0.4e00669acnkQy6&source=search&docId=105590&docType=1"
target=
"_blank"
>
淘宝
</a>
-
<a
href=
"https://developers.google.com/identity/protocols/OpenIDConnect"
target=
"_blank"
>
Google
</a>
-
<a
href=
"https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow"
target=
"_blank"
>
Facebook
</a>
-
<a
href=
"https://www.douyin.com/platform/doc/m-2-1-1"
target=
"_blank"
>
抖音
</a>
-
<a
href=
"https://docs.microsoft.com/zh-cn/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context"
target=
"_blank"
>
领英
</a>
-
<a
href=
"https://docs.microsoft.com/zh-cn/graph/auth/"
target=
"_blank"
>
微软
</a>
-
<a
href=
"https://dev.mi.com/console/doc/detail?pId=711"
target=
"_blank"
>
小米
</a>
-
<a
href=
"https://open.mp.toutiao.com/#/resource?_k=y7mfgk"
target=
"_blank"
>
头条
</a>
-
<a
href=
"https://docs.teambition.com/"
target=
"_blank"
>
Teambition
</a>
-
<a
href=
"http://open.renren.com/wiki/OAuth2.0"
target=
"_blank"
>
人人
</a>
-
<a
href=
"https://developers.pinterest.com/docs/api/overview/?"
target=
"_blank"
>
Pinterest
</a>
-
<a
href=
"https://api.stackexchange.com/docs/authentication"
target=
"_blank"
>
StackOverflow
</a>
-
<a
href=
"https://developer.huawei.com/consumer/cn/devservice/doc/30101"
target=
"_blank"
>
华为
</a>
-
<a
href=
"https://open.kujiale.com/open/apps/2/docs?doc_id=95"
target=
"_blank"
>
酷家乐
</a>
-
<a
href=
"https://docs.gitlab.com/ee/api/oauth2.html"
target=
"_blank"
>
Gitlab
</a>
-
<a
href=
"http://open.waimai.meituan.com/openapi_docs/oauth/"
target=
"_blank"
>
美团
</a>
-
<a
href=
"https://open.shop.ele.me/openapi/documents/khd001"
target=
"_blank"
>
饿了么
</a>
-
<a
href=
"https://developer.twitter.com/en/docs/basics/authentication/guides/log-in-with-twitter"
target=
"_blank"
>
推特
</a>
-
<a
href=
"https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object"
target=
"_blank"
>
用户信息
</a>
-
<a
href=
"https://developer.twitter.com/en/docs/basics/response-codes"
target=
"_blank"
>
响应码
</a>
-
<a
href=
"https://developer.twitter.com/en/docs/basics/apps/guides/callback-urls"
target=
"_blank"
>
Callback Urls规则
</a>
docs/thx.md
浏览文件 @
28466f8a
...
@@ -13,3 +13,6 @@
...
@@ -13,3 +13,6 @@
<div
style=
"clear: both;"
></div>
<div
style=
"clear: both;"
></div>
<a
href=
"https://www.producthunt.com/posts/justauth?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-justauth"
target=
"_blank"
><img
src=
"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=196886&theme=dark"
alt=
"JustAuth - Login, so easy! | Product Hunt Embed"
style=
"width: 250px; height: 54px;"
width=
"250px"
height=
"54px"
/></a>
docs/update.md
浏览文件 @
28466f8a
## 1.15.3-alpha
### 2020/05/13
-
修复
-
解决 Twitter 授权失败的BUG
-
文档
-
完善
[
https://docs.justauth.whnb.wang
](
https://docs.justauth.whnb.wang/
)
的404引导页内容
-
增加名词解释:
`uuid`
-
补充
[
Q&A
](
Q&A.md
)
-
新增
[
参考文档
](
references.md
)
,包含 OAuth 授权和第三方平台的API文档等内容
-
新增
[
推特登录
](
oauth/twitter.md
)
的说明文档
> 特别注意:所有国外平台都无法直接通过java进行访问API,目前[simple-http](https://github.com/xkcoding/simple-http) Release版本,暂不支持添加代理,所以目前需要手动开启代理。
代理开启的方式:
```
java
System
.
setProperty
(
"proxyPort"
,
"10080"
);
System
.
setProperty
(
"proxyHost"
,
"127.0.0.1"
);
```
以上代码可以在声明
`AuthRequest`
时创建,也可以全局执行。
本地如果支持科学上网,就用自己本地的代理端口即可,如果不支持科学上网,可以去网上找一些免费的代理IP进行测试(请自行操作)。
## 1.15.2-alpha
## 1.15.2-alpha
### 2020/05/10
### 2020/05/10
-
修改
-
修改
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录