目前微信扫码登录的实现有以下2种方式:
1、微信服务号扫码网页授权登录
2、微信开放平台Oauth2.0授权登录
以上2种方式少不了微信认证,都是需要交300元认证后才可以获得开发能力。所以我就想到了微信小程序,个人开发者无需认证也可以获得用户信息,授权登录,就可以简单实现一样的功能。
我们可以使用WeAuth平台实现,WeAuth提供API,我们只需要在后端发起登陆,微信扫码,授权后,WeAuth会讲用户信息转发给我们的服务器。
请求参数
1、域名
2、sk(由你自己生成,最大32位)
发起请求
https://wa.isdot.net/qrcode?str=yourdomain.com@sk
说明:yourdomain.com是你的域名(不带http),sk是你后端随机生成的。
// 示例https://wa.isdot.net/qrcode?str=www.qq.com@123456789
发起请求后,会返回base64的小程序码数据,我们需要展示小程序授权码(即小程序码)。
微信扫码
用户打开微信扫一扫,扫描登录授权码后,WeAuth后端将向你的域名发起登录请求,注意https协议和固定的/weauth路径),参数user是用户微信信息,sk为登录请求校验码。
WeAuth后端将向你的域名发起登录请求,请求地址:
https://yourdomain.com/weauth?user=uuu&sk=xxx
在你服务器根目录建立一个weauth目录,然后新建index.php就可以了,然后调用以上请求地址,用于接收请求结果,例如将得到的user和sk用于数据库校验和注册用户。
登陆
应用后端接收来自weauth后端的登录请求后根据sk识别登录请求的真伪,从而选择是否信任登录请求,根据当前登录请求中的用户微信信息完成授权登录。
登陆后,页面建议使用ajax轮询的方式,实时更新状态。