mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-14 12:14:33 +01:00
Add Web authentication
This commit is contained in:
@@ -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!'
|
||||
})
|
||||
|
||||
@@ -63,7 +63,7 @@ const sessionConfig: SessionConfig = {
|
||||
| Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on.
|
||||
|
|
||||
*/
|
||||
age: '2h',
|
||||
age: '2 days',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -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')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user