32 lines
862 B
Dart
32 lines
862 B
Dart
import 'auth_permission.dart';
|
|
import 'authenticated_user.dart';
|
|
|
|
/// 로그인 또는 토큰 갱신 결과를 표현하는 세션 모델.
|
|
class AuthSession {
|
|
const AuthSession({
|
|
required this.accessToken,
|
|
required this.refreshToken,
|
|
required this.expiresAt,
|
|
required this.user,
|
|
this.permissions = const [],
|
|
});
|
|
|
|
/// API 인증에 사용되는 액세스 토큰.
|
|
final String accessToken;
|
|
|
|
/// 토큰 갱신에 사용되는 리프레시 토큰.
|
|
final String refreshToken;
|
|
|
|
/// 액세스 토큰 만료 시각.
|
|
final DateTime? expiresAt;
|
|
|
|
/// 로그인한 사용자 정보.
|
|
final AuthenticatedUser user;
|
|
|
|
/// 사용자에게 할당된 권한 목록.
|
|
final List<AuthPermission> permissions;
|
|
|
|
/// 리프레시 토큰이 유효한지 여부를 단순 판단한다.
|
|
bool get hasRefreshToken => refreshToken.isNotEmpty;
|
|
}
|