新公司业务,发现一种新的微信授权登录方式....

前言,以前做过微信的小程序开发登录,以及扫码登录方式;简单回顾一下以前的方式吧(如果没记错的情况下):

(1)小程序:

通过前端wx.login()可以直接获取到code,然后请求后端获取openId或者进行登录等,比较简单;

(2)扫码登录

这个比较麻烦点了,其实理解了其中的oauth协议的code方式,能拿到code,也就跟小程序那个一样了.其中不同的就是前端的code是通过指定重定向地址通过传参过来的;

扫码也是一样,前端是vue写的,当时我给前端的解决方案是,当然首先在公众平台指定白名单路径;然后前端请求微信授权接口,指定的重定向地址依然是自己的一个前端页面,然后请求微信后会重定向到该页面,然后在该页面进行处理拿到code,完成;

 

(3)当前业务新的方式(依稀的感觉以前想到过这个方案,其实也是反借鉴了微信授权重定向)

1.前端请求 接口A  ->传参自定义的url,此处的后端逻辑是: ==> 将url存储redis,生成uuid当作key,然后响应重定向地址:(微信的授权地址,然后其中的重定向地址为redirect_uri=后台接口B?uuid=uuid),将uuid放到请求参数

2.前端这时候会根据微信的重定向,带着code和自定义的uuid参数,请求到 后端接口B,后端进行获取openId操作,然后通过uuid拿出url;

首先将openId对应的用户信息(要么微信获取的,要么就是以前就有的)保存到redis供下次关联手机号使用;

然后这时候骚的来了,将openId通过cookie的方式响应存入前端;然后响应了一个html => (<script type='text/javascript'>location.href='" + 通过uuid获取的前台url+ "';</script>)

3.然后前端应该是直接执行了后端相应的跳转脚本到了指定的地址;

4.此时前端本地cookie有了openId,然后访问特定的后台接口C拿到登录凭证TOKEN进行后续操作;

 

看着代码啥的还挺复杂,一套又一套的跳来跳去....

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值