refresh token esta vez si (espero)
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user