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 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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user