用户登录

成功验证了用户身份以后,会在请求里包含用户信息,这个用户信息就是在策略的 validate 方法里返回的东西,也就是我们可以在路由的处理方法里面直接使用请求的用户。

比如在这个 AuthController 的 authTest 方法里,用 @Req 装饰一下 req ,这样这个 req 参数的值就是请求。在方法里,可以在控制台上输出请求里的 user 属性的值。

先在数据库客户端,修改一下 id 号是 2 的这个用户的名字,换成原来的 wanghao1。

再回到 HTTP 客户端,请求一下 auth/test。

再回到控制台检查一下,你会发现这里输出了请求里的 user 属性的值,这个 user 就是 JwtStrategy 里的 validate 方法返回的东西。

自定义参数装饰

下面可以再去创建一个自定义的参数装饰器,放在 src/core/decorators 的下面,名字是 user.decorator.ts。

export const User,它的值用一下 createParamDecorator 这个方法生成,它来自 @nestjs/common 这个包。提供一个回调,第一个参数是 data,第二个参数是 req 表示请求,return 的东西就是 req 里的 user。

然后回到 AuthController,在路由处理方法里面,需要 user ,可以使用 @User 装饰器装饰一个方法参数,注意这个 User 是装饰器,不是我们定义的 User 实体。参数的名字是 user, 在方法里面,可以在控制台输出 user 参数的值。

在 HTTP 客户端,发送一下这个请求,同样会在控制台上输出请求里的 user 属性的值。

验证身份有效就会在请求里包含用户《 Nest.js 应用框架:身份验证 》

统计

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

社会化网络

关于

微信订阅号

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