Let's say you have 2 models. App/Models/User and App/Models/Admin
Inside your config/auth.js, you can create multiple authenticators for admin and user.
{
user: {
serializer: 'lucid',
model: 'App/Models/User',
scheme: 'session',
uid: 'email',
password: 'password'
},
admin: {
serializer: 'lucid',
model: 'App/Models/Admin',
scheme: 'session',
uid: 'email',
password: 'password'
}
}And then to protect your routes, you can say.
Route.get(...).middleware('auth:admin')
Route.get(...).middleware('auth:user')If inside your controllers, you want to know if user is an Admin or just a User, you can use the following code.
const Admin = use('App/Models/Admin')
if (auth.user instanceof Admin) {
// user is admin
}

Olá Maique, eu tentei fazer uma separação entre admin's e usuários como vc exemplificou e não funcionou. O erro foi seguinte:
estou querendo proteger a rota get que pega todos os usuários, mas só quero dar acesso a essa rota pra quem for admin e não consigo obter êxito, minha configuração no arquivo "config/auth.js" está assim:
Será que eu colei o código no local certo ou preciso fazer mais alguma coisa? Se puder me dar uma luz eu agradeço, pois sou iniciante