fix: let users have multiple refresh tokens
This commit is contained in:
@@ -62,23 +62,12 @@ export class TokensService {
|
||||
const refreshExpire = this.configService.getOrThrow<number>("REFRESH_TOKEN_EXPIRE");
|
||||
const expiresAt = dayjs().add(refreshExpire, "day").toDate();
|
||||
|
||||
const existingToken = await queryRunner.manager.findOne(this.refreshTokensRepository.target, {
|
||||
where: { user: { id: userId } },
|
||||
const token = queryRunner.manager.create(this.refreshTokensRepository.target, {
|
||||
token: refreshToken,
|
||||
user: { id: userId },
|
||||
expiresAt,
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
await queryRunner.manager.save(this.refreshTokensRepository.target, token);
|
||||
|
||||
if (transactionStarted) await queryRunner.commitTransaction();
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user