账号与微信绑定,微信扫码登陆

今天完成了pc端微信相关功能的开发,主要是账号与微信绑定,微信扫码登陆。

流程,用户登陆后,在个人中心里有一个和微信绑定界面,用户使用微信扫描后,当前账号和微信账号绑定,可以用来微信扫描登陆。

在登陆界面用户可以微信扫描登陆,前提是该账号和微信已绑定。如下

上图,该界面用户扫码

上图,用户扫码成功后,手机界面显示登陆成功,pc界面也显示登陆成功,几秒后转跳至用户中心。

关键:手机端和电脑端是同一个域名,在ThinkPHP中也是存在于同一个分组下。这样的话,手机端登陆,电脑端也就实现了登陆。其他情况略微复杂。

详细流程梳理:

登陆:二维码携带电脑端的参数session_id访问微信端的控制器,该控制器由于是微信用户的访问所以可以获取该用户的微信open_id,在数据库中user表中查询到open_id对应的用户,手机网页端实现登陆(把用户的uid写入session),这样用户实现了登陆。

同时,电脑登陆二维码界面要有个js函数用ajax不断访问一个控制器,该控制器只需返回用户是否登陆,如果当返回的是登陆后,隐藏二维码并显示登陆成功,几秒后转跳至用户中心。登陆完成。

账号绑定:如果用户没有绑定账号,在登陆中获取到open_id后是查询不到对应的用户uid的,所以也就没法登陆,所以账号绑定是将用户的uid和他访问时的open_id绑定,这样就可以用open_id登陆。

账号绑定界面的二维码携带用户的uid访问微信端的控制器,该控制器由于是微信用户的访问所以可以获取该用户的微信open_id,查询该open_id是否在用户表里存在,如果存在则表明已绑定了账号,如果没有,则将传过来的uid和open_id绑定。

代码下次贴

原文地址:https://www.cnblogs.com/tingfengqieyu/p/5442729.html