以snsapi_base为scope发起的网页受权用来获取用户的openid。不会跳转一个受权的页面,直接跳转回调页(也就是你一开始进入的页面),因此用户是无感知的,默认受权。前端
以snsapi_userinfo为scope发起的网页受权,用来获取用户的信息。须要用户手动肯定,也就是常见的一个页面询问是否赞成该公众号获取您昵称...数据库
1.用户赞成受权后得到code
请求https://open.weixin.qq.com/co...
参数说明后端
2.根据code换取access_token和openid (注意access_token有时效,过时后要自动刷新)
请求https://api.weixin.qq.com/sns...
提交appid和code(注意code5分钟后自动过时且只能使用1次)
第2步请求成功后返回openid和access_token,也就是到这一步为止完成了基础受权api
3.根据网页受权的access_token和openid能够获取用户信息
根据基础受权返回的openid和access_token做为参数请求 https://api.weixin.qq.com/sns...app
请求成功后返回用户信息,这一步也就是高级受权优化
当用户进入网页会有两种受权,一种是请求openid,用户是默认受权,不知情的。第一步获取了用户的openid和access_token,openid是惟一的,可是access_token两小时后过时,因此要自动刷新。
高级受权获取用户信息受权是须要用户手动确认的。即根据用户的openid和access_token来获取。有一个优化方法是获取用户信息后保存到数据库,当用户基础受权后根据它的openid来查找用户信息,若是没有再申请高级受权。
由于受权时须要的appid等是隐私数据,因此我司的处理方式是将两个受权方式都处理成后端接口让前端请求,这样就能够避免将隐私数据暴露。可是做为一名前端开发,了解这个受权流程仍是十分有必要的。spa