SuperAPI AI 工具集

sa-token-oauth2

数据与分析

查看项目

更新于 10-15 17:27

技能介绍

用途:基于 sa-token-doc/oauth2/ 文档整理的 Sa-Token OAuth2.0 服务端技能,用于搭建 OAuth2-Server、实现四种授权模式,并支持 Scope 权限控制、OIDC 身份层、OpenId/UnionId 及自定义 grant_type。基础登录与权限认证使用 sa-token 技能,SSO 使用 sa-token-sso,微服务鉴权使用 sa-token-micro。

主要能力:授权码模式(有后端 Web 应用,最常用、安全性最高)、隐式模式(纯前端应用,已不推荐)、密码模式(信任的客户端,如自家 APP)、客户端凭证模式(服务间调用,无需用户授权);支持自定义 Scope 与 Scope 等级、自定义登录/授权页、通过 @SaCheckAccessToken 与 @SaCheckClientToken 注解校验 Access-Token。

使用方式(工作流):1) 引入 sa-token-oauth2 依赖;2) 实现 SaOAuth2DataLoader(SaOAuth2DataLoaderImpl)加载客户端与 Scope 数据;3) 配置 Server 端点,注册 authorize/token/validate/refresh 接口;4) 配置 Token 有效期、授权模式等参数;5) 用授权码模式验证端到端流程;6) 上线前开启域名校验、配置回调白名单。刷 Token 可调用 /oauth2/refresh,refresh-token-timeout 默认 30 天。

适用场景:开放平台供第三方开发者使用选授权码模式;自家前后端分离应用选密码模式;微服务间调用 API 选客户端凭证模式;纯前端无后端应用可用隐式模式但已不推荐。

限制与注意事项:需 JDK 8+,OAuth2-Server 须可被 Client 访问,必须实现 SaOAuth2DataLoader,否则 Server 启动后不会自动加载数据;allow-url 回调白名单必须配置,否则授权失败;生产环境应关闭 isAutoMode,仅开发调试使用;AccessToken 有效期默认 2 小时,可用 access-token-timeout 配置;Scope 需在 DataLoader 与 ClientModel 两端配置才生效;OIDC 需额外配置 iss 与 idTokenTimeout;域名校验需在 allow-domains 中包含所有合法客户端;隐式模式 AccessToken 暴露在 URL 中有安全风险。本技能不收集、存储或传输任何用户数据。