zoukankan      html  css  js  c++  java
  • 账号与微信绑定,微信扫码登陆

    今天完成了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绑定。

    代码下次贴

  • 相关阅读:
    iOS,Android,WP, .NET通用AES加密算法
    iOS开发笔记-图标和图片大小官方最新标准
    因为对 Docker 不熟悉建了 N 多个 Nginx
    Docker 学习笔记 2019-05-27
    Linux Mint 19.1 安装 Docker 过程笔记
    W600 一块新的 KiCad PCB
    KiCad Mark 点名称
    一次乙型流感记录(2019-05-24)
    为什么不喜欢在 QQ 群里回答问题?
    Git 的两种忽略文件方式 gitignore 和 exclude
  • 原文地址:https://www.cnblogs.com/tingfengqieyu/p/5442729.html
Copyright © 2011-2022 走看看