欢迎大家访问我的博客 blog.ayla1688.cool
原文链接:http://blog.ayla1688.cool/archives/270.html
在前后端分离的时代,项目再做成php中心化的形式,有点太单调了, 并且随着业务量的扩增,想将应用服务做到水平扩展就需要解决一个重要的问题就是```用户授权```。
先说一下微信公众平台上给出的授权步骤
2 第二步:通过code换取网页授权access_token
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
### 老的用户授权实现
用户授权,通过mvc , 先通过controller层,在controller层做了用户的授权判断,code获取,换取access_token,获取用户信息, 进行用户登录返回token,或者保存session
目的: 公众号的appid, secret 是非常重要的,需要由服务器端保存;截获code, access_token 及换取用户信息方便,如果controller层的验证失败,则进入不了页面。
### 前后端分离方式
vue 获取code, 将code 传入接口, 由服务器进行access_token获取, 获取用户信息, 进行用户登录返回token.
目的:前端获取code, 完成用户授权后code 获取, 然后将code 传给接口, 获取用户信息, 保证了appi, secret 安全性, 返回用户唯一验证码token.
缺点: 前端获取code时,需要知道appid, 直接在vue里写死, 或者通过接口获取appid, 其实是一样的,都能通过抓包得到, 不过只暴露一个appid应该没有什么关系。
这种方式可行, 用户登录通过token 验证,不要存入session, 这样方便我们做负载均衡时,session 不在同一个服务器不能登录的问题。