feat: 添加token验证日志,优化WebSocket连接管理
This commit is contained in:
@@ -55,6 +55,7 @@ export class UserSecret {
|
|||||||
static async verifyToken(token: string) {
|
static async verifyToken(token: string) {
|
||||||
if (token?.includes?.('.')) {
|
if (token?.includes?.('.')) {
|
||||||
// 先尝试作为jwt token验证,如果验证成功则直接返回用户信息
|
// 先尝试作为jwt token验证,如果验证成功则直接返回用户信息
|
||||||
|
console.log('[jwksManager] 验证token');
|
||||||
return await jwksManager.verify(token);
|
return await jwksManager.verify(token);
|
||||||
}
|
}
|
||||||
if (!oauth.isSecretKey(token)) {
|
if (!oauth.isSecretKey(token)) {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { WebSocketListenerFun } from '@kevisual/router/src/server/server-type.ts
|
|||||||
export const wssFun: WebSocketListenerFun = async (req, res) => {
|
export const wssFun: WebSocketListenerFun = async (req, res) => {
|
||||||
// do nothing, just to enable ws upgrade event
|
// do nothing, just to enable ws upgrade event
|
||||||
const { id, ws, token, data, emitter } = req;
|
const { id, ws, token, data, emitter } = req;
|
||||||
logger.debug('ws proxy connected, id=', id, ' token=', token, ' data=', data);
|
|
||||||
// console.log('req', req)
|
// console.log('req', req)
|
||||||
const { type } = data || {};
|
const { type } = data || {};
|
||||||
if (type === 'registryClient') {
|
if (type === 'registryClient') {
|
||||||
@@ -27,6 +26,7 @@ export const wssFun: WebSocketListenerFun = async (req, res) => {
|
|||||||
logger.debug('ws 连接已存在,关闭旧连接', userApp);
|
logger.debug('ws 连接已存在,关闭旧连接', userApp);
|
||||||
wsMessage.ws.close();
|
wsMessage.ws.close();
|
||||||
wsProxyManager.unregister(userApp);
|
wsProxyManager.unregister(userApp);
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||||
}
|
}
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
wsProxyManager.register(userApp, { user, ws });
|
wsProxyManager.register(userApp, { user, ws });
|
||||||
|
|||||||
Reference in New Issue
Block a user