微信授权

0

基础授权

以snsapi_base为scope发起的网页授权用来获取用户的openid。不会跳转一个授权的页面,直接跳转回调页(也就是你一开始进入的页面),所以用户是无感知的,默认授权。

高级授权

以snsapi_userinfo为scope发起的网页授权,用来获取用户的信息。需要用户手动确定,也就是常见的一个页面询问是否同意该公众号获取您昵称...

授权的流程

1.用户同意授权后获得code
请求https://open.weixin.qq.com/co...
参数说明
clipboard.png

2.根据code换取access_token和openid (注意access_token有时效,过期后要自动刷新)
请求https://api.weixin.qq.com/sns...
提交appid和code(注意code5分钟后自动过期且只能使用1次)
第2步请求成功后返回openid和access_token,也就是到这一步为止完成了基础授权
clipboard.png

3.根据网页授权的access_token和openid可以获取用户信息
根据基础授权返回的openid和access_token作为参数请求 https://api.weixin.qq.com/sns...

请求成功后返回用户信息,这一步也就是高级授权

clipboard.png

总结

当用户进入网页会有两种授权,一种是请求openid,用户是默认授权,不知情的。第一步获取了用户的openid和access_token,openid是唯一的,但是access_token两小时后过期,所以要自动刷新。
高级授权获取用户信息授权是需要用户手动确认的。即根据用户的openid和access_token来获取。有一个优化方法是获取用户信息后保存到数据库,当用户基础授权后根据它的openid来查找用户信息,如果没有再申请高级授权。
因为授权时需要的appid等是隐私数据,所以我司的处理方式是将两个授权方式都处理成后端接口让前端请求,这样就可以避免将隐私数据暴露。但是作为一名前端开发,了解这个授权流程还是十分有必要的。

官方文档

https://mp.weixin.qq.com/wiki...

你可能感兴趣的

载入中...