在框架里如果想使用身份验证的功能,我们需要保证框架里面已经安装了 @adonisjs/auth 这个 package .. 因为创建项目的时候我选择的是 fullstack 模板,所以会自带这个包 .. 如果你在 package.json 里面没找到这个包,需要手工在命令行下面,去安装一下它 ..
有了这个包以后,还得再去注册一个 provider ... 在 start .. app.js 这个文件里面 .. providers 的下面,需要添加这个 @adonisjs/auth/providers/AuthProvider
另外还需要注册两个 middleware .. 在 start .. kernel.js 里面 .. 这个 globalMiddleware 这里需要添加一个 Adonis/Middleware/AuthInit ..
还需要在下面这个 namedMiddleware 这里,添加一个 Adonis/Middleware/Auth ..
配置
身份验证相关的配置是在 config ... auth.js 这个配置文件里面 ..
框架里面提供了几种身份验证的方法 .. 比如可以使用 Session ,就是会话 .. 或者 jwt .. 它是一种基于 Token 的身份验证的方法 ..
默认框架设置的是使用 session 这种方法 ..
在下面可以找到这种方法的具体的配置 .. serializer 默认使用的是 lucid .. 就是框架的 ORM ..
具体的 model 是 User 这个模型 .. scheme 是 session ..
这个 serializer 的值也可以是 database ... 如果是 database ... 应该再添加一个 table 配置,设置一下数据表的名字 ..
uid 的值是数据表上的一个字段的名字 .. 这个字段应该是用户的唯一的标识 .. 这里设置的是 email .. 也就是在这个 User 模型对应的 users 表里面,应该有一个 email 字段 .. 数据记录的这个字段的值应该在这个表里是唯一的 ..
这里我们也可以把它设置成 username ,就是用户名 .. 这样在登录的时候可以使用用户名 .. 还有密码 .. 如果是 email ,登录的时候要使用邮件地址还有密码 ..
password,用户的密码 .. 它的值也是在数据表里的一个字段 .. 默认就是 password 这个字段 .. 也就是在 users 表里面应该有个 password 字段,里面存储的就是 hash 之后用户的密码 ..