用户登录

注意在返回的这个新用户的信息里面 .. 他的 password 字段的值并不是我们当前在注册用户的时候填写的密码 .. 这里的密码是 hash 之后的密码 .. 就是在数据库里存储的用户的密码是经常某种算法处理过的 .. 这样即使你得到了 password 的值 .. 你也不知道它具体表示的那个真正的密码是什么 .. 这样会更安全一些 ..

这里有个 Hook 概念我们再理解一下 .. Hook 就是一些动作,这些动作你可以指定在特定的数据库操作上执行 .. 比如存储用户帐号的时候,就执行了一个 Hook,会用 hash 方法处理一下用户输入的密码 .. 然后再把处理之后的密码存储在数据库里 ..

使用命令行工具可以创建 Hook 文件 ... 在命令行的下面,执行 adonis make:hook 后面加上 Hook 的名字,比如 User ..

创建的 Hook 文件会存储在 app .. Models .. Hooks 这个目录的下面 .. 这里有个 User.js ..

在它里面,有个 hashPassword ... 这个方法做的事情就是判断了一下用户数据里有没有 password .. 如果有的话,我们就让这个 password 的值,变成使用 hash 方法处理之后的密码 ..

在模型里面我们可以在特定的数据库操作事件上使用这个 Hook .. 打开 User 这个模型 ..

在模型里,可以添加一个 boot 这个静态方法 .. 这里用了一个 addHook .. 添加了一个 Hook ... 这个 Hook 会在 beforeCreate 这个事件发生的时候被执行 .. 就是在存储数据记录之前的时候 ..

这里设置了在 beforeCreate 发生的事情,用一下 User Hook 里的 hashPassword 这个方法 .. 这个方法就是在 User Hook 里面定义好的 .. 它做的事情就是用 Hash 方法处理一下要保存的用户的密码 ...

另外还有很多可以使用的事件 .. 比如 afterCreate ,存储完成以后 .. beforeUpdate .. afterUpdate ,更新之前,更新之后等等 .. 具体可以使用的事件,你需要参考框架的 Hooks 相关的文档 ..

现在你只需要记住,如果你想在某些特定的数据库操作事件上做一些事情的话,可以通过 Hook 来完成 ...

Hooks:数据库操作之前或之后要执行的动作《 Node.js 应用:用户注册 》

统计

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

社会化网络

关于

微信订阅号

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