本人简单实现的示例,使用任意二维码工具打开二维码对应链接
http://www.54php.cn/demo1/scan
原理介绍:
第一步:访问登录页面,生成唯一key,例如MkhjDFL=,并且将此key 存入cache,对应值为-1 ,-1表示未登录
,key有效期我设置的为5分钟,过期就会重新生成二维码图片
第二步:生成二维码,本人使用库(https://github.com/2amigos/yii2-qrcode-helper),二维码对应的链接
http://www.54php.cn/demo1/qrcode?key=MkhjDFL=
第三步:登录页面,JS循环请求某个接口,本人接口 http://www.54php.cn/demo1/dologin
第四步:使用任意app,打开二维码对饮的链接。此处应该使用自己开发的App,并且App已经登录,然后使用自己的App扫描二维码,然后App请求二维码对应的链接,这样key 就可以 对应到 登录人UID,此时修改cache中key的对应值为登录人UID
第五步:由于第三步在重复请求接口,此接口如果检查到cache中的key值为登录人UID的时候,就会返回登录人信息并且保存登录态
PS:具体生成唯一key的算法,大家可以根据时间信息生成
示例截图如下:
自己可以玩玩:http://www.54php.cn/demo1/scan
不错
回复 @ apanly: 非常不错