fix: let users have multiple refresh tokens

This commit is contained in:
mahyargdz
2025-03-11 22:34:23 +03:30
parent cba2d21d94
commit 787f3d0426
+5 -16
View File
@@ -62,23 +62,12 @@ export class TokensService {
const refreshExpire = this.configService.getOrThrow<number>("REFRESH_TOKEN_EXPIRE"); const refreshExpire = this.configService.getOrThrow<number>("REFRESH_TOKEN_EXPIRE");
const expiresAt = dayjs().add(refreshExpire, "day").toDate(); const expiresAt = dayjs().add(refreshExpire, "day").toDate();
const existingToken = await queryRunner.manager.findOne(this.refreshTokensRepository.target, { const token = queryRunner.manager.create(this.refreshTokensRepository.target, {
where: { user: { id: userId } }, token: refreshToken,
user: { id: userId },
expiresAt,
}); });
await queryRunner.manager.save(this.refreshTokensRepository.target, token);
if (existingToken) {
existingToken.token = refreshToken;
existingToken.expiresAt = expiresAt;
await queryRunner.manager.save(this.refreshTokensRepository.target, existingToken);
//
} else {
const token = queryRunner.manager.create(this.refreshTokensRepository.target, {
token: refreshToken,
user: { id: userId },
expiresAt,
});
await queryRunner.manager.save(this.refreshTokensRepository.target, token);
}
if (transactionStarted) await queryRunner.commitTransaction(); if (transactionStarted) await queryRunner.commitTransaction();
} catch (error) { } catch (error) {