mirror of
https://gitee.com/dromara/sa-token.git
synced 2024-12-05 05:17:54 +08:00
.. | ||
oauth2-api.md | ||
oauth2-dev.md | ||
oauth2-interworking.md | ||
oauth2-server.md | ||
readme.md |
Sa-Token-OAuth2.0 模块
什么是OAuth2.0?解决什么问题?
简单来讲,OAuth2.0的应用场景可以理解为单点登录的升级版,单点登录解决了多个系统间会话的共享,OAuth2.0在此基础上增加了应用之间的权限控制 (SO:有些系统采用OAuth2.0模式实现了单点登录,但这总给人一种“杀鸡焉用宰牛刀”的感觉)
有关OAuth2.0的设计思想网上教程较多,此处不再重复赘述,详细可参考博客: OAuth2.0 简单解释
如果你还不知道你的项目应该选择 SSO 还是 OAuth2.0,可以参考这篇:技术选型:[ 单点登录 ] VS [ OAuth2.0 ]
OAuth2.0 四种模式
基于不同的使用场景,OAuth2.0设计了四种模式:
- 授权码(Authorization Code):OAuth2.0标准授权步骤,Server端向Client端下放Code码,Client端再用Code码换取授权Token
- 隐藏式(Implicit):无法使用授权码模式时的备用选择,Server端使用URL重定向方式直接将Token下放到Client端页面
- 密码式(Password):Client直接拿着用户的账号密码换取授权Token
- 客户端凭证(Client Credentials):Server端针对Client级别的Token,代表应用自身的资源授权
接下来我们将通过简单示例演示如何在 Sa-OAuth2 中完成这四种模式的对接: 搭建OAuth2-Server