diff --git a/app/Controllers/Http/AuthController.ts b/app/Controllers/Http/AuthController.ts index 786415d..ae14eb2 100755 --- a/app/Controllers/Http/AuthController.ts +++ b/app/Controllers/Http/AuthController.ts @@ -3,12 +3,12 @@ import User from "App/Models/User"; export default class AuthController { - public async login ({ request, auth, response }: HttpContextContract) { + public async loginApi ({ request, auth, response }: HttpContextContract) { const email = request.input('email') const password = request.input('password') const infinity = request.input('infinity', false) - const token = await auth.attempt(email, password, { + const token = await auth.use('api').attempt(email, password, { expiresIn: infinity ? '' : '2 days' }) return response.status(200).send({ @@ -16,6 +16,18 @@ export default class AuthController { }) } + public async loginWeb ({ request, auth, response }: HttpContextContract) { + const email = request.input('email') + const password = request.input('password') + const remember = request.input('rembember', false) + + await auth.use('web').attempt(email, password, remember) + + return response.status(200).send({ + user: auth.use('web').user + }) + } + public async createInfiniteToken ({ request, auth, response }: HttpContextContract) { const email = request.input('email') const password = request.input('password') @@ -25,8 +37,17 @@ export default class AuthController { }) } - public async logout ({ auth, response }: HttpContextContract) { - await auth.logout() + public async logoutApi ({ auth, response }: HttpContextContract) { + await auth.use('api').logout() + await auth.use('api').revoke() + return response.status(200).send({ + message: 'You have been disconnected!' + }) + } + + public async logoutWeb ({ auth, response }: HttpContextContract) { + await auth.use('web').logout() + await auth.use('api').revoke() return response.status(200).send({ message: 'You have been disconnected!' }) diff --git a/config/session.ts b/config/session.ts index 5247832..3ebd2d5 100755 --- a/config/session.ts +++ b/config/session.ts @@ -63,7 +63,7 @@ const sessionConfig: SessionConfig = { | Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on. | */ - age: '2h', + age: '2 days', /* |-------------------------------------------------------------------------- diff --git a/start/routes/auth.ts b/start/routes/auth.ts index f2f9c50..0f02d8e 100644 --- a/start/routes/auth.ts +++ b/start/routes/auth.ts @@ -4,7 +4,15 @@ Route.group(() => { Route.get('/me', 'AuthController.user').middleware('auth') Route.post('/token', 'AuthController.createInfiniteToken') - Route.post('/login', 'AuthController.login') - Route.post('/logout', 'AuthController.logout') + Route.group(() => { + Route.post('/login', 'AuthController.loginApi') + Route.post('/logout', 'AuthController.logoutApi') + }).prefix('/api') + + Route.group(() => { + Route.post('/login', 'AuthController.loginWeb') + Route.post('/logout', 'AuthController.logoutWeb') + }).prefix('/web') + }).prefix('/auth')