此 demo 主要演示 Spring Boot 项目如何使用 史上最全的第三方登录工具 - JustAuth 实现第三方登录。
JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录SDK,让登录变得So easy!
- 全:已集成十多家第三方平台(国内外常用的基本都已包含),后续依然还有扩展计划!
- 简:API就是奔着最简单去设计的(见后面
快速开始
),尽量让您用起来没有障碍感!PS: 本人十分幸运的参与到了这个SDK的开发,主要开发了QQ登录、微信登录、小米登录、微软登录、谷歌登录这
5
个第三方登录,以及一些BUG的修复工作。再次感谢 @母狼 开源这个又好用又全面的第三方登录SDK。
首先准备一台有公网IP的服务器,可以选用阿里云或者腾讯云,如果选用的是阿里云的,可以使用我的优惠链接购买。
服务端搭建在上一步准备的公网服务器上,因为服务器是centos7 x64的系统,因此,这里下载安装包版本为linux_amd64的 frp_0.27.0_linux_amd64.tar.gz 。
下载安装包
$ wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz
解压安装包
$ tar -zxvf frp_0.27.0_linux_amd64.tar.gz
修改配置文件
$ cd frp_0.27.0_linux_amd64
$ vim frps.ini
[common]
bind_port = 7100
vhost_http_port = 7200
启动frp服务端
$ ./frps -c frps.ini
2019/06/15 16:42:02 [I] [service.go:139] frps tcp listen on 0.0.0.0:7100
2019/06/15 16:42:02 [I] [service.go:181] http service listen on 0.0.0.0:7200
2019/06/15 16:42:02 [I] [root.go:204] Start frps success
客户端搭建在本地的Mac上,因此下载安装包版本为darwin_amd64的 frp_0.27.0_darwin_amd64.tar.gz 。
下载安装包
$ wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_darwin_amd64.tar.gz
解压安装包
$ tar -zxvf frp_0.27.0_darwin_amd64.tar.gz
修改配置文件,配置服务端ip端口及监听的域名信息
$ cd frp_0.27.0_darwin_amd64
$ vim frpc.ini
[common]
server_addr = 120.92.169.103
server_port = 7100
[web]
type = http
local_port = 8080
custom_domains = oauth.xkcoding.com
启动frp客户端
$ ./frpc -c frpc.ini
2019/06/15 16:48:52 [I] [service.go:221] login to server success, get run id [8bb83bae5c58afe6], server udp port [0]
2019/06/15 16:48:52 [I] [proxy_manager.go:137] [8bb83bae5c58afe6] proxy added: [web]
2019/06/15 16:48:52 [I] [control.go:144] [web] start proxy success
前往阿里云DNS解析,将域名解析到我们的公网服务器上,比如我的就是将 oauth.xkcoding.com -> 120.92.169.103
nginx 的搭建就不在此赘述了,只说配置
server {
listen 80;
server_name oauth.xkcoding.com;
location / {
proxy_pass http://127.0.0.1:7200;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
sendfile off;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_temp_file_write_size 64k;
proxy_http_version 1.1;
proxy_request_buffering off;
}
}
测试配置文件是否有问题
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载配置文件,使其生效
$ nginx -s reload
现在当我们在浏览器输入
oauth.xkcoding.com
的时候,网络流量其实会经历以下几个步骤:
- 通过之前配的DNS域名解析会访问到我们的公网服务器
120.92.169.103
的 80 端口- 再经过 nginx,代理到本地的 7200 端口
- 再经过 frp 穿透到我们的 Mac 电脑的 8080 端口
- 此时 8080 就是我们的应用程序端口
New OAuth App
按钮创建应用这里微信开放平台需要用企业的,个人没有资质,所以我在某宝租了一个月的资质,需要的可以 戳我租赁
声明:本人与该店铺无利益相关,纯属个人觉得好用做分享
该店铺有两种方式:
- 店铺支持帮你过企业资质,这里就用你自己的开放平台号就好了
- 临时使用可以问店家租一个月进行开发,这里租了之后,店家会把 AppID 和 AppSecret 的信息发给你,你提供回调域就好了
因此这里我就贴出一张授权回调的地址作参考。

创建网页应用
回调地址
应用详情
查看到 AppKey 和 AppSecret,吐槽下,小米应用的审核速度特别慢,需要耐心等待。。。。