1.隐式授权模式
- 用户访问页面时,重定向到认证服务器。
- 认证服务器给用户一个认证页面,等待用户授权。
- 用户授权,认证服务器向应用页面返回授权码
- 验证 Token ,访问真正的资源页面
优点:简单。
缺点:没有后台,授权码暴露在前端,安全性无法保障。
2.授权码授权模式
优点:access_token不会经过浏览器或移动端的App,而是直接从服务端去交换,这样就最大限度的减小了令牌泄漏的风险,安全性高。
缺点:多次请求。
3.密码模式
- 用户向应用提供用户名密码。
- 应用使用用户名密码,直接向认证服务器请求 token。
- 认证服务器通过校验,拿到token ,访问真正的资源页面。
优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。
缺点:局限性,认证服务器和应用方必须有超高的信赖。
4.客户端凭证模式
- 应用向认证服务器发起认证请求。
- 认证服务器通过校验,拿到token,访问真正的资源页面。
优点:无用户参与,过程简单。
缺点:安全性无法保障,需要授权应用完全信任,且授权应用安全可靠。