用户登录

验证了用户提供的登录信息,就可以给它签发一个 JWT,下回再访问的时候就让用户带着这个 JWT,我们的应用收到请求会验证用户的 JWT 的有效性,确定没有问题就会让用户继续访问。

签发,验证 JWT 可以使用 JSON Web Token 这个 Package, Nest 给我们提供了一个基于这个 Package 创建的一个模块,在应用里可以用一下这个模块去处理 JWT。

在终端, 给应用安装一个 Package,npm install 安装的是 @nestjs/jwt --save ,

注册

完成以后回到项目,打开 Auth 模块,先在文件顶部,从 @nestjs/jwt 这个 package 里面,把 JwtModule 导入进来。

然后在这个模块里再导入这个 JWT 模块,imports,导入 JwtModule,再用 register,配置一下这个模块的使用,把一个选项对象交给这个方法。

签发 JWT 的时候需要使用一个 Secret 或者一个密钥文件,它们有点像是 JWT 的密码,如果设置使用 Secret,在验证 JWT 的时候会使用同样的 Secret 的值。

要是使用 Private Key ,就是密钥,验证 JWT 的时候要用到对应的公钥,这个密钥还有公钥需要单独去生成。

我们暂时先设置使用一个 Secret ,添加一个 secretOrPrivateKey 属性,它的值可以是一个 Secret 的值,这个值你可以使用一组随机的字符串,qHqPHVPasjfHDCrcX7Ao7x5O5W098RU3i6lloVgWZFY=。

下面再添加一个 signOptions 属性,它里面的东西就是签发 JWT 的时候用的一个配置选项,比如可以使用 expiresIn 设置一下 JWT 的有效时间,比如 300,表示签发的 JWT 的有效时间是 300 秒,也就是 5 分钟,你也可以使用一些字符串表示的时间,比如 12h 表示 12 小时 ,7d 表示 7 天,暂时先把它设置成 12h。

安装与配置 JWT 模块(@nestjs/jwt)《 Nest.js 应用框架:身份验证 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点