小编Roh*_*han的帖子

使用 Fastify preHandler 中间件

在访问此路由之前通过中间件对用户进行身份验证。

当我tokenController.authUser作为中间件传递时,tokenService内部tokenControllerundefined. 但是,当我将此方法作为路由内的函数而不是中间件运行时,它工作得很好。

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)

middleware node.js typescript clean-architecture fastify

1
推荐指数
1
解决办法
5727
查看次数