在访问此路由之前通过中间件对用户进行身份验证。
当我tokenController.authUser作为中间件传递时,tokenService内部tokenController是undefined. 但是,当我将此方法作为路由内的函数而不是中间件运行时,它工作得很好。
server.post('/api/admin/test', { preHandler: [tokenController.authUser] }, async (request: any, reply: any) => {
return null
});
Run Code Online (Sandbox Code Playgroud)
令牌控制器:-
import { Users } from "@prisma/client";
import ITokenService from "../../services/tokenService/ITokenService";
import ITokenController from "./ITokenController";
export default class TokenController implements ITokenController {
private readonly tokenService: ITokenService;
constructor(_tokenService: ITokenService) {
this.tokenService = _tokenService;
}
async authUser(request: any, reply: any): Promise<Users | Error> {
const authHeader = request.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1];
if …Run Code Online (Sandbox Code Playgroud)