feat(auth): include subscription tier in token and session payload
- Adds subscription tier info to access/refresh tokens. - Stores tier details in session Redis record. - Returns tier data in login/register response. - Uses default tier when user has none.
This commit is contained in:
1 parent
7f42def478
commit
d27526e026
20 files changed
+2133
-40
No files matched your search
+13
-7
@@ -9,21 +9,29 @@ const SESSION_PREFIX = "session:";
|
||||
const USER_SESSION_PREFIX = "user_session:";
|
||||
const SESSION_TTL = 60 * 60 * 24 * 7; // 7 dias (mesmo que refresh token)
|
||||
|
||||
export interface SessionTierInfo {
|
||||
subscriptionTierId: number | null;
|
||||
subscriptionTierSlug: string | null;
|
||||
subscriptionTierName: string | null;
|
||||
subscriptionTierLevel: number | null;
|
||||
}
|
||||
|
||||
export interface SessionData {
|
||||
userId: number;
|
||||
username: string;
|
||||
email: string;
|
||||
accessToken: string;
|
||||
createdAt: number;
|
||||
subscriptionTierId: number | null;
|
||||
subscriptionTierSlug: string | null;
|
||||
subscriptionTierName: string | null;
|
||||
subscriptionTierLevel: number | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cria ou atualiza uma sessão
|
||||
*/
|
||||
export async function setSession(
|
||||
sessionId: string,
|
||||
data: SessionData
|
||||
): Promise<void> {
|
||||
export async function setSession(sessionId: string, data: SessionData): Promise<void> {
|
||||
try {
|
||||
const client = getRedisClient();
|
||||
if (!client.isOpen) {
|
||||
@@ -46,9 +54,7 @@ export async function setSession(
|
||||
/**
|
||||
* Obtém dados de uma sessão
|
||||
*/
|
||||
export async function getSession(
|
||||
sessionId: string
|
||||
): Promise<SessionData | null> {
|
||||
export async function getSession(sessionId: string): Promise<SessionData | null> {
|
||||
try {
|
||||
const client = getRedisClient();
|
||||
if (!client.isOpen) {
|
||||
|
||||
Reference in new issue
Block a user