实现微信扫码后关注公众号自动登录
一、原理
1、获取access_token
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
2、获取带参二维码
用户扫描带场景值二维码时,可能推送以下两种事件:
如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
服务器获取带参二维码后,把二维码和场景值都返给前端
3、接收微信回调事件推送
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html
4、前端根据场景值轮询查询用户扫码状态,后端可以返回的状态有:二维码过期/用户未扫码/用户已扫码
如果用户已扫码,可以同时返回给登录成功的JWT token。
二、代码示例
WechatScanLoginSample: .net6 实现用户扫码或扫码关注公众号登录的功能 (gitee.com)
也可以改为用户先用原有登录系统登录,再绑定微信,绑定后即可用扫码登录。