https://github.com/msojocs/goauth
通过小程序实现微信登录功能
https://github.com/msojocs/goauth
goauth wechat wechat-app wechat-mini-program
Last synced: 11 months ago
JSON representation
通过小程序实现微信登录功能
- Host: GitHub
- URL: https://github.com/msojocs/goauth
- Owner: msojocs
- License: gpl-2.0
- Created: 2020-02-03T10:47:23.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-02T11:07:43.000Z (about 4 years ago)
- Last Synced: 2025-04-06T15:13:09.256Z (about 1 year ago)
- Topics: goauth, wechat, wechat-app, wechat-mini-program
- Language: PHP
- Homepage: https://goauth.jysafe.cn
- Size: 5.05 MB
- Stars: 9
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GoAuth
这是一个通过小程序实现微信登录功能的东西
前有`weauth`,不过因为最近的疫情在家闲得慌,就高仿了一下
# 逻辑
懒得写了,自己看图或者下载`pic`目录下的`GoAuth.vsdx`文件使用Visio查看

# 接入说明
1. 应用开发者根据GoAuth约定格式(`domain@sk`)生成登录授权码所需字符串。
注:字符串以`@`分割,其中`domain`是接入应用的业务域名,`sk`是登录请求校验码(由开发者随机生成,一般会在应用后台进行记录并设置有过期时间,用于和接收到的登录请求中的`sk`进行比对),字符串总长不能超过**32**。
***PS:只支持数字,大小写英文以及部分特殊字符:`!#$&'()*+,/:;=?-._~`,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)***
2. 请求`https://api.goauth.jysafe.cn/qrcode?str=yourdomain.com@sk`获得base64格式的登录授权码。
3. 应用用户打开微信扫一扫,扫描登录授权码后,GoAuth后端将向应用业务域名domain发起登录请求(GET方法:`https://yourdomain.com/goauth?userinfo=uuu&sk=xxx`,注意https协议和固定的`/goauth`路径),参数`userinfo`是用户微信信息,`sk`为登录请求校验码。
4. 应用后端接收来自**goauth后端**的登录请求后根据`sk`识别登录请求的真伪,从而选择是否信任登录请求,根据当前登录请求中的用户微信信息完成授权登录。
***PS:应用后端若信任请求请在响应头中添加 `goauth: ok` ;否则请在响应头中添加 `goauth: fail`***
5. `安全性:`应用后端必须使用https协议,保证传输过程的安全;goauth只负责转发请求,不进行任何形式的数据私自存储;通过登录请求校验码,避免包括goauth在内的任何第三方伪造登录请求。
# DEMO
暂时只有PHP端,其它平台请自行参照原理编写(其实PHP端也得自己重新写,我写的太差了。。。)
DEMO下的文件全丢到某服务器根目录下,将空数据库上传,配置DEMO中`config/config.php`文件内容
# WxApp
小程序
改一下`project.config.json`中的`appid`
# phpApp
小程序服务端
不含数据库,只要配置一下`config/config.php`就能用
# 小程序服务端状态码(code)说明
| 状态码 | 状态类型 |
| ----------- | ----------- |
| 200 | 正常 |
| 201 | EasyPhp 请求发生异常|
| 211 | 异常!若频繁出现请联系开发者|
| 222 | 来源不承认此次验证|
| 233 | 参数异常|
| 244 | 服务端通过HTTPS访问来源域名时出错|
| 245 | 服务端访问来源域名时出错|
| 403 | 权限不足 |
| 404 | 来源君不知道去哪玩了?|
# 打赏支持~
厚颜无耻 ╮(╯▽╰)╭
| 支付宝 | 微信 |
| ------- | ----- |
|||
----
结束