diff --git a/apps/web/lib/auth-token.ts b/apps/web/lib/auth-token.ts index 91165f9..58c016d 100644 --- a/apps/web/lib/auth-token.ts +++ b/apps/web/lib/auth-token.ts @@ -21,31 +21,37 @@ export const getValidAccessToken = cache(async () => { if (isValid) return session.access_token; // console.log('Access Token Expiró'); - // B. Si expiró, buscamos la cookie const cookieStore = cookies(); - const refreshTokenCookie = await cookieStore - const refreshToken = refreshTokenCookie.get('refresh_token')?.value; + const cookie = await cookieStore + const refreshToken = cookie.get('refresh_token')?.value; + const teaToken = cookie.get('tea_token')?.value; if (!refreshToken) { // console.log('No hay Refresh Token'); + // Si no hay refres pero si access token pero ya expiro borrar la cookie para forzar cierre de session + (await cookieStore).delete('authjs.session-token');// comentar si por algun motivo da error return null } // No hay refresh token, fin del juego // console.log('Si hay Refresh Token'); + if (teaToken) { + return teaToken + } // C. Intentamos refrescar const newTokens = await resfreshTokenAction({ refreshToken }); if (!newTokens) { // console.log('No hay token nuevo'); - // Si falla el refresh (token revocado o expirado), borramos cookie + // Si falla el refresh (token revocado o expirado), borramos cookies (await cookieStore).delete('refresh_token'); - (await cookieStore).delete('authjs.session-token'); + (await cookieStore).delete('authjs.session-token');// comentar si por algun motivo da error return null; } // console.log('Si hay token nuevo'); + // console.log('Guardamos refresh'); // D. Guardamos el nuevo refresh token en cookie y retornamos el access token (await cookieStore).set('refresh_token', newTokens.refresh_token, { httpOnly: true, @@ -55,13 +61,14 @@ export const getValidAccessToken = cache(async () => { maxAge: 7 * 24 * 60 * 60, }); - // (await cookieStore).set('authjs.session-token', newTokens.access_token, { - // httpOnly: true, - // secure: process.env.NODE_ENV === 'production', - // sameSite: 'lax', - // path: '/', - // maxAge: 7 * 24 * 60 * 60, - // }); + // console.log('guardamo tea'); + (await cookieStore).set('tea_token', newTokens.access_token, { + httpOnly: true, + secure: process.env.NODE_ENV === 'production', + sameSite: 'lax', + path: '/', + maxAge: 7 * 24 * 60 * 60, + }); return newTokens.access_token; });