优化 token 处理逻辑,统一过期时间字段命名
This commit is contained in:
@@ -66,8 +66,8 @@ export class User extends Model {
|
|||||||
accessToken: token.accessToken,
|
accessToken: token.accessToken,
|
||||||
refreshToken: token.refreshToken,
|
refreshToken: token.refreshToken,
|
||||||
token: token.accessToken,
|
token: token.accessToken,
|
||||||
accessTokenExpiresAt: token.accessTokenExpiresAt,
|
refreshTokenExpiresIn: token.refreshTokenExpiresIn,
|
||||||
refreshTokenExpiresAt: token.refreshTokenExpiresAt,
|
accessTokenExpiresIn: token.accessTokenExpiresIn,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -76,9 +76,9 @@ interface Store<T> {
|
|||||||
|
|
||||||
type TokenData = {
|
type TokenData = {
|
||||||
accessToken: string;
|
accessToken: string;
|
||||||
accessTokenExpiresAt: number;
|
accessTokenExpiresIn?: number;
|
||||||
refreshToken?: string;
|
refreshToken?: string;
|
||||||
refreshTokenExpiresAt?: number;
|
refreshTokenExpiresIn?: number;
|
||||||
}
|
}
|
||||||
export class RedisTokenStore implements Store<OauthUser> {
|
export class RedisTokenStore implements Store<OauthUser> {
|
||||||
redis: Redis;
|
redis: Redis;
|
||||||
@@ -170,20 +170,20 @@ export class RedisTokenStore implements Store<OauthUser> {
|
|||||||
|
|
||||||
await this.set(accessToken, JSON.stringify(value), expire);
|
await this.set(accessToken, JSON.stringify(value), expire);
|
||||||
await this.set(userPrefix + ':token:' + accessToken, accessToken, expire);
|
await this.set(userPrefix + ':token:' + accessToken, accessToken, expire);
|
||||||
let refreshTokenExpiresAt = Math.min(expire * 7, 60 * 60 * 24 * 30, 60 * 60 * 24 * 365); // 最大为一年
|
let refreshTokenExpiresIn = Math.min(expire * 7, 60 * 60 * 24 * 30, 60 * 60 * 24 * 365); // 最大为一年
|
||||||
if (refreshToken) {
|
if (refreshToken) {
|
||||||
// 小于7天, 则设置为7天
|
// 小于7天, 则设置为7天
|
||||||
if (refreshTokenExpiresAt < 60 * 60 * 24 * 7) {
|
if (refreshTokenExpiresIn < 60 * 60 * 24 * 7) {
|
||||||
refreshTokenExpiresAt = 60 * 60 * 24 * 7;
|
refreshTokenExpiresIn = 60 * 60 * 24 * 7;
|
||||||
}
|
}
|
||||||
await this.set(refreshToken, JSON.stringify(value), refreshTokenExpiresAt);
|
await this.set(refreshToken, JSON.stringify(value), refreshTokenExpiresIn);
|
||||||
await this.set(userPrefix + ':refreshToken:' + refreshToken, refreshToken, refreshTokenExpiresAt);
|
await this.set(userPrefix + ':refreshToken:' + refreshToken, refreshToken, refreshTokenExpiresIn);
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
accessToken,
|
accessToken,
|
||||||
accessTokenExpiresAt: expire,
|
accessTokenExpiresIn: expire,
|
||||||
refreshToken,
|
refreshToken,
|
||||||
refreshTokenExpiresAt,
|
refreshTokenExpiresIn: refreshTokenExpiresIn,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async delKeys(keys: string[]) {
|
async delKeys(keys: string[]) {
|
||||||
|
|||||||
Reference in New Issue
Block a user