微信三方登录记录

最近做了一个练习项目,其中用到了微信的三方登录的模块,觉得还是有必要记录一下,
一.为什么需要微信三方登陆 1.用户不用记账号了,直接扫码登录 2.系统有很大的用户群体,有比较大的平台背景,用户可以直接登录,避免繁琐过程,可以比较好的推广自己的网站
二.OAUTH三方协议 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。oAuth是Open Authorization的简写,目前的版本是2.0版。 与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码)微信开放平台供开发者可以基于微信做很多事情:https://open.weixin.qq.com/可以看一下开发平台的内容,需要什么参数,如何实现,都比较详细三.微信登录的流程微信三方登陆流程图
站在用户的角度,首先我们需要给用户提供一个按钮或a标签,点击触发第三方应用向微信发出的【第一个请求】:获取code https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 请求的模板在官方网站可以查询。我们需要替换的是:appid:填写自己的appid和redirect_uri:即重定向的地址,其他按官方默认填写或其他需求。请求成功之后,微信会返回一个二维码页面,即用户授权页面,用户扫码授权之后,微信端确认,拉起第三方应用或重定向到第三方并携带授权码code。
http:/.html?code=asdfa*asdfadf 微信端回调 从重定向的地址栏可以获取到code,前端发请求携带code到业务层,业务层通过code向微信发送【第二个请求】:通过code获取access_token https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code将请求中的appid,secret(应用密钥),传入的code进行提换替换,请求成功后会返回结果: 类型为字符串类型,可以将其转为json对象类型(需要fastjson支持),从而可以获取access_token和openid等字段,数据库后台需要一个专门存储微信登录信息的表,openid为表字段标识信息。 获取到access_token和openid后即可以正式开始业务的相关操作,首先需要判断扫码用户是否为第一扫码登录,通过openid进行查询验证,若返回存在登录信息,即可直接免密登录,若不存在登录信息,即表示用户第一次扫码登录,需跳转到绑定页面,让用户进行绑定操作,绑定成功后再扫码登录。 微信绑定基本流程:后端返回openid和access_token到前端页面,跳转页面并将openid和access_token在地址栏拼接携带为参数,利用钩子函数获取参数openid和access_token,发送请求到后台参数为:openid和access_token以及用户提供绑定的信息(手机号等)。后台先进行参数校验,信息判断等基本操作,无误后使用openid和access_token向微信发送【第三个请求】:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID即可返回基本的用户信息资料,将对应信息设置到数据中进行保存记录即可。 登录成功后,将用户基本信息设置到redis中并设置时效,设置key=token,value=用户登录信息,并将token及用户信息(敏感信息过滤)以Map的形式返回到页面端,利用localStorage进行保存,同时完善配置前置拦截器(每次请求都携带token),后台拦截器,前端拦截器(前端拦截与放行判断)及后端拦截器(后端拦截及放行判断)等基本配置即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值