25 lines
1.3 KiB
Java
25 lines
1.3 KiB
Java
package com.baiyue.auth.dto;
|
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* 认证令牌响应契约,返回访问令牌、刷新令牌及其有效期等会话信息。
|
|
*/
|
|
@Schema(name = "TokenResponse", description = "Access and refresh token pair / 访问令牌与刷新令牌")
|
|
public record TokenResponse(
|
|
@Schema(description = "Token type / 令牌类型", example = "Bearer") String tokenType,
|
|
@Schema(description = "JWT access token / JWT 访问令牌", format = "password") String accessToken,
|
|
@Schema(description = "Access token lifetime in seconds / 访问令牌有效秒数", example = "1800") long expiresIn,
|
|
@Schema(description = "Refresh token / 刷新令牌", format = "password") String refreshToken,
|
|
@Schema(description = "Refresh token lifetime in seconds / 刷新令牌有效秒数", example = "604800") long refreshExpiresIn,
|
|
@Schema(description = "Current role snapshot returned outside JWT / JWT 外返回的当前角色快照") Set<String> roles,
|
|
@Schema(description = "Current authority snapshot returned outside JWT / JWT 外返回的当前权限快照") Set<String> authorities
|
|
) {
|
|
public TokenResponse {
|
|
roles = roles == null ? Set.of() : Set.copyOf(roles);
|
|
authorities = authorities == null ? Set.of() : Set.copyOf(authorities);
|
|
}
|
|
}
|