微信授权登陆步骤

 

伙伴们一起做了Javaweb小项目,微信登录授权模块是我负责,给大家普及后顺便发到这里,如果有不足的地方欢迎提出!

进入项目任意页面

进入项目任意页面,后台首先会判断该用户是否登录。

若没有登录(即session中没有用户信息)并且以下两种情况任意一个时

1.      首次进入该公众号

2.      授权过期

就进入以下授权页面。

第一步:用户同意授权,获取code

页面显示一个让用户点击的微信url,让用户点击

 

 微信授权登陆步骤_第1张图片

当点击确认授权后,自动跳入后台写好的url,获取到code

code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

第二步:通过code获取网页授权access_token

然后后台逻辑再次请求微信的url并拼接code参数,该请求所返回的json串里含有access_token(接口调用凭证)以及openId(用户与此公众号的唯一标识)。

access_token有7天有效期。当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

openId是用户与此公众号的唯一标识,永远唯一且不过期

微信授权登陆步骤_第2张图片

第三步:通过access_token和openId获取用户信息

后台逻辑再次访问微信url并拼接两个参数,成功会返回下面的包含用户信息的json串,将用户信息存入数据库方便以后使用

微信授权登陆步骤_第3张图片

 

第四步进入主页

完成以上授权,获取到用户信息后,标记该请求为已登录状态(即将用户信息放入session),后台逻辑跳入主页

 

授权登陆就此完成。

 

 

有兴趣继续看

这次授权了后,以后再次进入该项目,就从cookie中获取openId,就不用经过步骤一了(清空了cookie?那就再次授权咯),然后根据openid直接从数据库查到用户信息并标记该请求为已登录状态就可以了

 

附录:微信官方文档原文:

上面写的简略。如果你很爱学习很渴望力量,具体实现点链接:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

 

 如果有不足的地方欢迎提出!

 

 

你可能感兴趣的:(java)