refresh token esta vez si (espero)

This commit is contained in:
2025-10-09 11:25:46 -04:00
parent 6f8a55b8fd
commit c1d4a40244
4 changed files with 19 additions and 15 deletions

View File

@@ -59,8 +59,13 @@ export class AuthController {
//@RequirePermissions('auth:refresh-token') //@RequirePermissions('auth:refresh-token')
async refreshToken(@Body() refreshTokenDto: any) { async refreshToken(@Body() refreshTokenDto: any) {
console.log('refreshTokenDto', refreshTokenDto);
const data = await this.authService.refreshToken(refreshTokenDto); const data = await this.authService.refreshToken(refreshTokenDto);
// console.log('data', data);
if (!data) return null; if (!data) return null;
return {tokens: data} return {tokens: data}

View File

@@ -263,11 +263,14 @@ export class AuthService {
//Refresh User Access Token //Refresh User Access Token
async refreshToken(dto: RefreshTokenDto): Promise<RefreshTokenInterface> { async refreshToken(dto: RefreshTokenDto): Promise<RefreshTokenInterface> {
const { user_id, refresh_token } = dto; const secret = envs.refresh_token_secret;
// const user_id = 1; const { user_id, token } = dto;
const validation = await this.jwtService.verifyAsync(refresh_token, { console.log('secret', secret);
secret: envs.refresh_token_secret, console.log('refresh_token', token);
const validation = await this.jwtService.verifyAsync(token, {
secret
}); });
if (!validation) throw new UnauthorizedException('Invalid refresh token'); if (!validation) throw new UnauthorizedException('Invalid refresh token');
@@ -278,7 +281,7 @@ export class AuthService {
.where( .where(
and( and(
eq(sessions.userId, user_id) && eq(sessions.userId, user_id) &&
eq(sessions.sessionToken, dto.refresh_token), eq(sessions.sessionToken, token),
), ),
); );

View File

@@ -7,7 +7,7 @@ export class RefreshTokenDto {
@IsString({ @IsString({
message: 'Refresh token must be a string', message: 'Refresh token must be a string',
}) })
refresh_token: string; token: string;
@ApiProperty() @ApiProperty()
@IsNumber() @IsNumber()

View File

@@ -145,23 +145,19 @@ const authConfig: NextAuthConfig = {
// 4. Si el token de acceso ha expirado pero el refresh token es válido, renovar // 4. Si el token de acceso ha expirado pero el refresh token es válido, renovar
// console.log("Renovando token de acceso..."); console.log("Renovando token de acceso...");
try { try {
const refresh_token = { token: token.refresh_token as string, user_id: Number(token.id) as number} const refresh_token = { token: token.refresh_token as string, user_id: Number(token.id) as number}
console.log(refresh_token);
const res = await resfreshTokenAction(refresh_token); const res = await resfreshTokenAction(refresh_token);
// console.log('res', res);
if (!res || !res.tokens) { if (!res || !res.tokens) {
throw new Error('Fallo en la respuesta de la API de refresco.'); throw new Error('Fallo en la respuesta de la API de refresco.');
} }
// console.log("Old Access Expire:", token.access_expire_in);
// console.log("New Access Expire:", res.tokens.access_expire_in);
// console.log("token:", token.refresh_token);
// Actualizar el token directamente con los nuevos valores // Actualizar el token directamente con los nuevos valores
token.access_token = res.tokens.access_token; token.access_token = res.tokens.access_token;
token.access_expire_in = res.tokens.access_expire_in; token.access_expire_in = res.tokens.access_expire_in;