feat: 优化token验证逻辑,添加异常处理以增强稳定性
This commit is contained in:
@@ -56,22 +56,28 @@ export class UserSecret {
|
|||||||
if (oauth.getTokenType(token) === 'jwks') {
|
if (oauth.getTokenType(token) === 'jwks') {
|
||||||
// 先尝试作为jwt token验证,如果验证成功则直接返回用户信息
|
// 先尝试作为jwt token验证,如果验证成功则直接返回用户信息
|
||||||
console.log('[jwksManager] 验证token');
|
console.log('[jwksManager] 验证token');
|
||||||
const verified = await jwksManager.verify(token);
|
try {
|
||||||
if (verified) {
|
|
||||||
const sub = verified.sub;
|
const verified = await jwksManager.verify(token);
|
||||||
const userId = sub.split(':')[1];
|
if (verified) {
|
||||||
const user = await User.findByPk(userId);
|
const sub = verified.sub;
|
||||||
if (!user) {
|
const userId = sub.split(':')[1];
|
||||||
console.warn(`[jwksManager] 验证token成功,但用户不存在,userId: ${userId}`);
|
const user = await User.findByPk(userId);
|
||||||
|
if (!user) {
|
||||||
|
console.warn(`[jwksManager] 验证token成功,但用户不存在,userId: ${userId}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const oauthUser = oauth.getOauthUser({
|
||||||
|
id: user.id,
|
||||||
|
username: user.username,
|
||||||
|
type: user.type,
|
||||||
|
});
|
||||||
|
return oauthUser;
|
||||||
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const oauthUser = oauth.getOauthUser({
|
} catch (e) {
|
||||||
id: user.id,
|
console.error('[jwksManager] 验证token失败', e);
|
||||||
username: user.username,
|
|
||||||
type: user.type,
|
|
||||||
});
|
|
||||||
return oauthUser;
|
|
||||||
} else {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user