houzhongjian
2024-09-14 818a0170d8f2950d52cc7300a302356bbc523236
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.oauth2;
H 2
3 import com.iailab.framework.common.pojo.PageResult;
4 import com.iailab.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
5 import com.iailab.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
6
7 import java.util.List;
8
9 /**
10  * OAuth2.0 Token Service 接口
11  *
12  * 从功能上,和 Spring Security OAuth 的 DefaultTokenServices + JdbcTokenStore 的功能,提供访问令牌、刷新令牌的操作
13  *
14  * @author iailab
15  */
16 public interface OAuth2TokenService {
17
18     /**
19      * 创建访问令牌
20      * 注意:该流程中,会包含创建刷新令牌的创建
21      *
22      * 参考 DefaultTokenServices 的 createAccessToken 方法
23      *
24      * @param userId 用户编号
25      * @param userType 用户类型
26      * @param clientId 客户端编号
27      * @param scopes 授权范围
28      * @return 访问令牌的信息
29      */
30     OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes);
31
32     /**
33      * 刷新访问令牌
34      *
35      * 参考 DefaultTokenServices 的 refreshAccessToken 方法
36      *
37      * @param refreshToken 刷新令牌
38      * @param clientId 客户端编号
39      * @return 访问令牌的信息
40      */
41     OAuth2AccessTokenDO refreshAccessToken(String refreshToken, String clientId);
42
43     /**
44      * 获得访问令牌
45      *
46      * 参考 DefaultTokenServices 的 getAccessToken 方法
47      *
48      * @param accessToken 访问令牌
49      * @return 访问令牌的信息
50      */
51     OAuth2AccessTokenDO getAccessToken(String accessToken);
52
53     /**
54      * 校验访问令牌
55      *
56      * @param accessToken 访问令牌
57      * @return 访问令牌的信息
58      */
59     OAuth2AccessTokenDO checkAccessToken(String accessToken);
60
61     /**
62      * 移除访问令牌
63      * 注意:该流程中,会移除相关的刷新令牌
64      *
65      * 参考 DefaultTokenServices 的 revokeToken 方法
66      *
67      * @param accessToken 刷新令牌
68      * @return 访问令牌的信息
69      */
70     OAuth2AccessTokenDO removeAccessToken(String accessToken);
71
72     /**
73      * 获得访问令牌分页
74      *
75      * @param reqVO 请求
76      * @return 访问令牌分页
77      */
78     PageResult<OAuth2AccessTokenDO> getAccessTokenPage(OAuth2AccessTokenPageReqVO reqVO);
79
80 }