微信小程序本身提供了openid等信息的无感知获取,基于此来实现微信扫码登录,主要包含以下几个步骤:
1. WEB登陆页面的实现
打开登录页面时,生成一个带有唯一ID的小程序码,小程序码图片加载以后,通过WebSocket或者轮询确认此唯一ID是否已经确认登陆或者超时。
这一步比较简单,进入登录页面,通过调用生成小程序码接口,就可以生成一个带有特定参数的小程序码。
通过图片的onload的属性,可以启动一个定时器或者WebSocket连接到后端,获取是否已经确认登陆或者超时过期。
2. 微信小程序端的实现
通过onLoad可以获取到携带的唯一ID,调用login接口后可以获取code,合并到一起提交到后端登陆接口,后端可以通过调用code获取到session信息,用以区分不同用户。
查询到用户以后,将对应的用户标记为登陆状态即可,具体实现可以按照应用逻辑来。
3. 后端的实现
后端主要包括:
- 小程序码接口,用于展示小程序码图片
- 登录接口,接受code和唯一ID
- 状态查询接口,或者WebSocket服务,用于前端查询或者推送唯一ID过期或者确认登陆状态,实现登陆后的跳转。
发表回复