| | |
| | | import { Config, Middleware } from '@midwayjs/core'; |
| | | import { Config, Inject, Middleware } from '@midwayjs/core'; |
| | | import { NextFunction } from '@midwayjs/socketio'; |
| | | import * as jwt from 'jsonwebtoken'; |
| | | import { UserInfoService } from '../../../user/service/info'; |
| | | |
| | | @Middleware() |
| | | export class CsSocketTokenMiddleware { |
| | |
| | | |
| | | @Config('module.base.jwt') |
| | | adminJwtConfig; |
| | | |
| | | @Inject() |
| | | userInfoService: UserInfoService; |
| | | |
| | | resolve() { |
| | | return async (ctx, next: NextFunction) => { |
| | |
| | | token, |
| | | isAdmin ? this.adminJwtConfig.secret : this.appJwtConfig.secret |
| | | ); |
| | | let userId = isAdmin ? data.userId : data.id; |
| | | if (!isAdmin) { |
| | | const info = await this.userInfoService.person(data.id); |
| | | userId = info?.id; |
| | | } |
| | | ctx.connData = { |
| | | userId: isAdmin ? data.userId : data.id, |
| | | userId, |
| | | isAdmin, |
| | | }; |
| | | } catch (error) { |