微信扫码登陆或注册设计流程

一、整体流程

1、点击微信登录按钮,跳转微信扫码页面

2、用户扫描登录码,匹配用户信息

3、未匹配到用户信息,做注册操作

4、匹配到用户信息,做登录操作

微信授权流程说明,参照微信开放平台

获取access_token时序图

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

二、流程细化

请求code

1、用户点击微信登录按钮,跳转到微信扫码界面,第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接: https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect,需要填写的信息为APPID,redirect_uri,scope,state

2、用户确认登陆,会根据redirect_uri中的回调页面地址返回所需的授权码,此时可以获取地址栏信息,向后台发送请求,进行用户的信息判断。

3、后台接受请求之后,获取到授权码信息,向微信开放平台发送第二次HttpClient请求,携带授权码等信息https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code去获取用户的令牌access_token以及openId信息,再和数据库中的微信用户数据进行比较,如果存在则直接免密登陆

4、数据库中不存在用户信息,返回前台令牌和openId,并且跳转用户注册界面,准备进行用户的微信注册服务。使用电话号码绑定用户信息,如果用户已经通过了电话注册了账号,则直接将微信扫码的信息和电话信息绑定在一起,如果没有注册过则需要重新生成微信用户信息和电话信息,此时发送第三次HttpClient请求,https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID,获取微信用户的扫码信息,用于保存在数据库的微信用户列表中。

5、总结:第一次请求,获取用户的授权码信息

                第二次请求,获取令牌等其他信息

                第三次请求,利用令牌可以获取用户的其他信息

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值