sa-token/sa-token-doc/doc/oauth2/readme.md
2022-08-20 09:59:19 +08:00

33 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sa-Token-OAuth2.0 模块
---
### 什么是OAuth2.0?解决什么问题?
简单来讲OAuth2.0的应用场景可以理解为单点登录的升级版单点登录解决了多个系统间会话的共享OAuth2.0在此基础上增加了应用之间的权限控制
SO有些系统采用OAuth2.0模式实现了单点登录,但这总给人一种“杀鸡焉用宰牛刀”的感觉)
有关OAuth2.0的设计思想网上教程较多,此处不再重复赘述,详细可参考博客:
[OAuth2.0 简单解释](https://www.ruanyifeng.com/blog/2019/04/oauth_design.html)
<!-- 、[OAuth2.0 的四种方式](http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html) -->
如果你还不知道你的项目应该选择 SSO 还是 OAuth2.0,可以参考这篇:[技术选型:[ 单点登录 ] VS [ OAuth2.0 ]](/fun/sso-vs-oauth2)
### OAuth2.0 四种模式
基于不同的使用场景OAuth2.0设计了四种模式:
1. 授权码Authorization CodeOAuth2.0标准授权步骤Server端向Client端下放Code码Client端再用Code码换取授权Token
2. 隐藏式Implicit无法使用授权码模式时的备用选择Server端使用URL重定向方式直接将Token下放到Client端页面
3. 密码式PasswordClient直接拿着用户的账号密码换取授权Token
4. 客户端凭证Client CredentialsServer端针对Client级别的Token代表应用自身的资源授权
![https://oss.dev33.cn/sa-token/doc/oauth2/sa-oauth2-setup.png](https://oss.dev33.cn/sa-token/doc/oauth2/sa-oauth2-setup.png)
接下来我们将通过简单示例演示如何在 Sa-OAuth2 中完成这四种模式的对接: [搭建OAuth2-Server](/oauth2/oauth2-server)