关于创建菜单时Nestjs 路由守卫问题

关于创建菜单时Nestjs 路由守卫问题

老师, 在 menu.module.ts 中并未在其 provides 引入 AuthGuard ,为什么创建菜单时不传递 Authorization 参数会提示 401?传递 Authorization 后正常

https://img1.sycdn.imooc.com/climg/65854c0b0986cab221501119.jpg

是因为在 app.module.ts 中 imports 了 AuthModule 吗?

https://img1.sycdn.imooc.com/climg/65854bf909a2d6c708610915.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,是的。app.module.ts中,引入的模块,会在整个项目中使用。app.module.ts中引入的AuthModule,会让所有路由都受该鉴权类的控制。

祝学习愉快!


  • TKXZ 提问者 #1

    那如果想要指定module使用该守卫而不是全局使用,是不是就不能在app.module中引入了, 在需要的module下引入即可, 例如 user.module

    2023-12-22 17:31:38
  • TKXZ 提问者 #2

    好像也不行, 这样login的请求就无法处理了, 老师有其他办法,让守卫局部使用吗

    2023-12-22 17:35:11
  • 好帮手慕久久 回复 提问者 TKXZ #3

    解答如下:

    没法局部使用,但是可以让个别接口不用鉴权功能。鉴权守卫中,提供了@public注解,如果哪个路由不想用鉴权功能,那么就使用注解,比如登录接口不需要鉴权,那么就用注解标注一下,比如:

    https://img1.sycdn.imooc.com/climg/65855a76095dee1209500572.jpg

    此时登录接口就不需要鉴权拦截了。

    2023-12-22 17:46:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师