用户登录

在 User 模型的上面,我们可以添加一个生成验证数据用的方法 .. 这样用户注册成功以后,可以使用这个方法再去创建一个验证数据,把数据组织一下,用邮件的形式发送到用户的邮箱里面 ..

添加一个方法 .. 名字可以是 generateVerification ... 验证数据里面,主要得包含一个随机的字符串 ... 这里可以用一个包来生成 .. 先去安装一下它 .. adonis install ,包的名字是 randomstring ..

回到项目 .. 在这个 User 模型的顶部,导入刚才安装的 randomstring .. 名字叫 randomstring ...

然后继续再编辑这个 generateVerification 方法 ... 添加一个 token .. 它的值用一下 randomstring 的 generate 生成 .. 再配置一下 ... length 是随机字符的长度 .. 可以先设置成 6 .. charset 是随机字符的类型 .. 我只需要数字,所以它的值可以设置成 numeric ... 如果设置成 alphabetic,生成的随机字符就是 a 到 z 之间的字母 ...

下面再添加一个 verification ... await this .. 表示 user 模型的实例 .. 用一下 verification 这个关系 .. 接着再用一下 create 去创建一个相关的 verification .. 设置一下 token 字符的值,对应的值就是上面定义的 token ..

最后再 return 生成的这个 verification ...

试验

我们可以在命令行下面,使用交互模式去试一下这个生成验证数据的方法 .. 回到命令行 ... 打开交互模式 .. adonis repl ..

先把 User,用户模型导入进来 ... 添加一个 User .. 模型是 App/Models/User ... 再去创建一个用户 .. 添加一个 u1 .. await ... 用一下 User 上的 create ... 设置一下用户的 username ... password .... 还有 email ...

查看一下这个 u1 ... u1.toJSON() ... 返回的就是刚才我创建的这个用户 .. 回到数据库客户端 .. 检查一下 users 表 .. 里面会有刚才创建的这个用户 ..

再看一下 verification 表 .. 现在它里面还没有东西 ..

下面再去创建一个验证 .. 添加一个 v1 ... await ,用一下我们在用户模型上定义的 generateVerification 这个方法 ... 它会给我们生成一个验证数据 ...

查看一下 ... v1.toJSON() .. 返回的就是这个验证数据 ..

再到数据库客户端上检查一下 ... 查看一下 users 表 ... 这里会有刚才我们创建的这个用户 ... 再看一下 verifications 这个表里的东西 ...

现在里面会有一条记录 .. 它的 user_id 对应的就是 users 表里的某个用户记录的 id 号 ...

回到命令行 ... 我们再把刚才创建的用户删除掉试一下 ... await u1.delete() ...

然后再回到数据库客户端 ... 现在 users 表里已经没有刚才我们创建的那个用户了 ... 再看一下 verifications ... 之前在这个表里的那条数据记录也被删除掉了 ..

因为在定义 verifications 这个表的数据结构的时候, 我们把 user_id 这个外键的 onDelete 设置成了 CASCADE .. 所以删掉了用户记录的同时,也会把跟这个用户记录相关的验证数据删除掉 ...

生成验证数据《 Node.js 应用:邮件验证 》

统计

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

社会化网络

关于

微信订阅号

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