前言:公司的产品一个比较重要的场景是分享到微信中,在微信打开页面后,我们会通过打开微信的用户的信息,进行权限的判断,其中包括游客的,这样我们就没有办法弹窗强制让用户登录,最终选用了微信的静默授权登录
1. 微信授权登录
前端调用:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://m.abc.cn/wx/login/?url=https%3A%2F%2Fm.abc.cn%2Fpages%2Fpassport%2FloginDemo.html%3FredirectNum%3D0&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect,与微信交互进行微信的授权登录,其中scope有两种,具体的解释见微信官方文档,redirect_uri的值前半部分是我们的接口,后半部分的url的值要进行URLEncode
2. 接口/wx/login/的处理逻辑
- 通过第一步后,
/wx/login/会携带微信生成的code的参数,根据code获取当前的微信用户的openid,接口调用https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code,其中CODE的值就是code - 返回值
{ "access_token":"ACCESS_TOKEN","expires_in":7200,"refresh_token":"REFRESH_TOKEN","openid":"OPENID","scope":"SCOPE" }
- 根据
OPENID,查询数据库中用户的信息,并设置session
本文介绍了一种在微信环境中实现静默授权登录的方法,详细解释了前端如何调用微信授权登录接口,以及后端如何处理登录流程,包括通过code获取openid,并基于此进行用户信息查询与session设置。
642

被折叠的 条评论
为什么被折叠?



