se agrego tea token. reemplaso del access token expirado. Para evitar refresh en cada consulta

This commit is contained in:
2026-03-23 10:58:59 -04:00
parent f88ab2a971
commit 524869b1f9

View File

@@ -21,31 +21,37 @@ export const getValidAccessToken = cache(async () => {
if (isValid) return session.access_token; if (isValid) return session.access_token;
// console.log('Access Token Expiró'); // console.log('Access Token Expiró');
// B. Si expiró, buscamos la cookie // B. Si expiró, buscamos la cookie
const cookieStore = cookies(); const cookieStore = cookies();
const refreshTokenCookie = await cookieStore const cookie = await cookieStore
const refreshToken = refreshTokenCookie.get('refresh_token')?.value; const refreshToken = cookie.get('refresh_token')?.value;
const teaToken = cookie.get('tea_token')?.value;
if (!refreshToken) { if (!refreshToken) {
// console.log('No hay Refresh Token'); // 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 return null
} // No hay refresh token, fin del juego } // No hay refresh token, fin del juego
// console.log('Si hay Refresh Token'); // console.log('Si hay Refresh Token');
if (teaToken) {
return teaToken
}
// C. Intentamos refrescar // C. Intentamos refrescar
const newTokens = await resfreshTokenAction({ refreshToken }); const newTokens = await resfreshTokenAction({ refreshToken });
if (!newTokens) { if (!newTokens) {
// console.log('No hay token nuevo'); // 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('refresh_token');
(await cookieStore).delete('authjs.session-token'); (await cookieStore).delete('authjs.session-token');// comentar si por algun motivo da error
return null; return null;
} }
// console.log('Si hay token nuevo'); // console.log('Si hay token nuevo');
// console.log('Guardamos refresh');
// D. Guardamos el nuevo refresh token en cookie y retornamos el access token // D. Guardamos el nuevo refresh token en cookie y retornamos el access token
(await cookieStore).set('refresh_token', newTokens.refresh_token, { (await cookieStore).set('refresh_token', newTokens.refresh_token, {
httpOnly: true, httpOnly: true,
@@ -55,13 +61,14 @@ export const getValidAccessToken = cache(async () => {
maxAge: 7 * 24 * 60 * 60, maxAge: 7 * 24 * 60 * 60,
}); });
// (await cookieStore).set('authjs.session-token', newTokens.access_token, { // console.log('guardamo tea');
// httpOnly: true, (await cookieStore).set('tea_token', newTokens.access_token, {
// secure: process.env.NODE_ENV === 'production', httpOnly: true,
// sameSite: 'lax', secure: process.env.NODE_ENV === 'production',
// path: '/', sameSite: 'lax',
// maxAge: 7 * 24 * 60 * 60, path: '/',
// }); maxAge: 7 * 24 * 60 * 60,
});
return newTokens.access_token; return newTokens.access_token;
}); });