Files
superport_v2/lib/features/auth/domain/entities/auth_session.dart
2025-10-16 18:53:22 +09:00

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;
}