【问题标题】:How to validate authorization header in nestjs?如何验证nestjs中的授权标头?
【发布时间】:2020-04-28 00:07:32
【问题描述】:

我如何验证 Authorization 标头,并检查它是否是 uuid 版本 4 在nestjs 中? 我不能使用@Headers(new ParseUUIDPipe()) token: string。

【问题讨论】:

    标签: validation nestjs


    【解决方案1】:

    标题不可用于管道。原因是可能存在未知数量的标头,这可能导致验证出现问题。如果您需要验证单个标头,我建议使用警卫或 n 拦截器,具体取决于您是要返回 BadRequestException 还是 UnauthorizedException

    【讨论】:

    • 我可以在拦截器中使用类似next.handle().pipe(ParseUUIDPipe) 的东西吗?
    • 不。管道不是这样工作的。如果你想自己实例化管道,你可以这样做,然后调用 validate 方法,但是简单的 UUID v4 检查也不是太难。
    • 我需要在授权策略启动之前对其进行验证。似乎拦截器紧随其后,还是我错了?
    • 管道和拦截器都在守卫之后运行。唯一在守卫之前运行的是中间件,as described here
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2015-05-05
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    相关资源
    最近更新 更多