用户登录

先打开项目里的 PostController,找到 store 这个方法,创建内容的时候可以验证一下用户身份,要求只有登录的用户才能创建内容,在方法上面用一个 @UseGuards,使用 AuthGuard 这个守卫。

注意使用它的时候没有特别设置要用的验证策略,这样就会使用默认的策略。

打开 HTTP 客户端,可以先去创建一个新的目录,名字叫 Nest.js,然后在这个目录的下面再去添加一个请求,名字可以是 Post Store,请求用的方法设置成 POST。

设置一下请求的地址,localhost:3000/posts,请求带着 JSON 格式的主体数据 ,需要一个 title 属性,值是内容的标题,还有一个 body 属性,它是内容的正文,直接发送一下这个请求,提示了一个 500 的内部服务错误。

看一下控制台上输出的东西,这里会提示,如果要使用默认的策略,我们需要在模块里导入 PassportModule,或者我们直接导入 AuthModule 也可以,因为在这个模块里导入了 PassportModule 并且设置了默认使用的验证策略。

回到项目,打开 Post 模块,在模块的导入里面, 导入之前我们创建的 AuthModule。

再到 HTTP 客户端试一下,重新发送一下这个请求,这回提示 401 没有权限 ,因为请求里没有包含有效的 token。

新建一个请求,名字叫 Auth Login,设置一下请求用的方法,设置成 POST,再输入请求的地址,localhost:3000/auth/login。请求里要包含一个主体数据,格式是 JSON,里面需要 name ,就是请求登录的用户名,还有 password,密码。

再回到数据库客户端,打开应用的 user 数据表,这里我们可以修改一下 id 号是2 的用户的用户名,换成 xiaoxue。

在创建 wanghao 这个用户的时候,没有 Hash 用户的密码,我们可以复制一下 xiaoxue 的 password ,粘贴到 wanghao 这个用户的 password 里面。

回到 HTTP 客户端,发送一下这个请求,提示密码不匹配,重新设置一下用户的密码。

验证成功会给我们签发一个 token,复制一下这个 token 的值。

再回到 Post Store 这个请求,设置一下这个请求的验证,选择 Bearer Token,把请求成功返回的 token 的值放在这个 token 里面,发送一下这个请求,这回就成功的创建了这个内容。

在 Post 模块中使用 AuthGuard 验证用户身份《 Nest.js 应用框架:内容关系 》

统计

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

社会化网络

关于

微信订阅号

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