refresh token esta vez si (espero)
This commit is contained in:
@@ -59,8 +59,13 @@ export class AuthController {
|
||||
//@RequirePermissions('auth:refresh-token')
|
||||
async refreshToken(@Body() refreshTokenDto: any) {
|
||||
|
||||
console.log('refreshTokenDto', refreshTokenDto);
|
||||
|
||||
const data = await this.authService.refreshToken(refreshTokenDto);
|
||||
|
||||
// console.log('data', data);
|
||||
|
||||
|
||||
if (!data) return null;
|
||||
|
||||
return {tokens: data}
|
||||
|
||||
@@ -263,11 +263,14 @@ export class AuthService {
|
||||
|
||||
//Refresh User Access Token
|
||||
async refreshToken(dto: RefreshTokenDto): Promise<RefreshTokenInterface> {
|
||||
const { user_id, refresh_token } = dto;
|
||||
// const user_id = 1;
|
||||
const secret = envs.refresh_token_secret;
|
||||
const { user_id, token } = dto;
|
||||
|
||||
const validation = await this.jwtService.verifyAsync(refresh_token, {
|
||||
secret: envs.refresh_token_secret,
|
||||
console.log('secret', secret);
|
||||
console.log('refresh_token', token);
|
||||
|
||||
const validation = await this.jwtService.verifyAsync(token, {
|
||||
secret
|
||||
});
|
||||
|
||||
if (!validation) throw new UnauthorizedException('Invalid refresh token');
|
||||
@@ -278,7 +281,7 @@ export class AuthService {
|
||||
.where(
|
||||
and(
|
||||
eq(sessions.userId, user_id) &&
|
||||
eq(sessions.sessionToken, dto.refresh_token),
|
||||
eq(sessions.sessionToken, token),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ export class RefreshTokenDto {
|
||||
@IsString({
|
||||
message: 'Refresh token must be a string',
|
||||
})
|
||||
refresh_token: string;
|
||||
token: string;
|
||||
|
||||
@ApiProperty()
|
||||
@IsNumber()
|
||||
|
||||
@@ -145,23 +145,19 @@ const authConfig: NextAuthConfig = {
|
||||
|
||||
|
||||
// 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 {
|
||||
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);
|
||||
|
||||
// console.log('res', res);
|
||||
|
||||
|
||||
if (!res || !res.tokens) {
|
||||
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
|
||||
token.access_token = res.tokens.access_token;
|
||||
token.access_expire_in = res.tokens.access_expire_in;
|
||||
|
||||
Reference in New Issue
Block a user