记录当时第一次开发公众号的登录授权流程
用户第一次进入公众号
第一步:引导用户去授权页面
用户进入到公众号h5页面,会发送请求获取微信公众号的一些微信签名(appid,Signature等)
公司现在的逻辑是通过接口来判断是否要去登录,所以当用户浏览的页面有需要登录的请求接口的时候。后端会返回一个链接,这个链接就是授权的链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx2jeljwe34324&redirect_uri=https%3A%2F%2Fmanual.fdaf.com%2F%23%2Fweixinloginback%3FreturnUrl%3Dhttps%253A%252F%252Fmanualtes.fdf.com%252F%2523%252Fhome%252Fuser&response_type=code&scope=snsapi_userinfo&state=snsapi_userinfo&connect_redirect=1#wechat_redirect
我们使用的scope使用的是snsapi_userinfo而不是静默授权的snsapi_base,所以是需要用户手动授权的。
第二步:使用code获取access_token
当用户点击授权页面,会通过redirect_uri参数重定向一个空页面。这个空页面的主要作用是通过获取到的code发送请求请求access_token和refresh_token、openId等。但是如果这个是一个新用户的话,我们会让他去登录页面,进行登录将它的信息保存到数据库里面去。
用户已经授权登录,再进入
当用户已经授权过了,就不会再让它再授权。因为access_token是有时效性的,所以是两个小时删除access_token,并且通过refresh_token再进行刷新,再次获取到access_token。
refresh_token的时效性是30天,过了30天后就需要用户再次进行授权