四种实现方式
1、授权码式(推荐)
2、隐藏式
3、密码式
4、客户端式
所有的访问控制模型,实质都在解决同一个问题“谁拥有什么权限去操作哪些资源”。
OAuth2是解决第三方应用。
具体来讲,就是我让第三方应用去存有信息的服务器上获取资源。举个例子就是我在登陆csdn的时候,使用qq账号登陆,授权csdn拿到qq账号和头像信息等。
四个角色:
我:资源所有者
浏览器:操作代理
csdn:第三方应用
qq服务器:资源服务器
qq认证服务:授权服务器
qq服务器,qq认证服务可以是同一个,这里只是区分下它的功能。
四种授权方式流程图:
1、授权码(不暴露token)
2、隐藏式(暴露token,不暴露clientsecret)
3、密码式(密码可能被第三方保存)
4、客户端式(不需要用户,全部由后端交互)