nest.js实战之JWT认证、装饰器角色校验、装饰器获取当前用户

 

1.简介

 

nest.js可以集成passport的认证,jwt可以作为一种passport认证策略实现

我们需要实现以下功能:

登录返回一个JWT token,token的有效载荷是用户信息,后续可以使用Bearer Token来进行访问

使用Bearer Token访问时,可以在Guard里解析token,将用户信息设置到req.user,如果jwt无效,抛出认证异常

AuthGuard注册为全局Guard,默认所有路由需要认证

自定义装饰器,设置元数据,用于标记路由不需要认证,并且在Guard里检查元数据,跳过认证

自定义装饰器,可以获取当前用户信息

自定义装饰器,设置元数据,标记访问路由需要的角色,并且在Guard里检查元数据,如果角色不符合,抛出未授权异常

 

2.安装

 

安装passport,因为使用jwt,所以不需要安装passport-local策略

$ npm install --save @nestjs/passport passport 

 

安装jwt模块与passport-jwt策略“”

$ npm install --save @nestjs/jwt passport-jwt
$ npm install --save-dev @types/passport-jwt

 

3.实现

 

3.1 Pass

上一篇:【Nest教程】连接MySQL数据库


下一篇:【Nest教程】基于Nest初始化Web API项目