这是一个通过小程序实现微信登录功能的东西
前有weauth,不过因为最近的疫情在家闲得慌,就高仿了一下
懒得写了,自己看图或者下载pic目录下的GoAuth.vsdx文件使用Visio查看

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

