mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-27 18:10:27 +01:00
Add Web authentication
This commit is contained in:
@@ -3,12 +3,12 @@ import User from "App/Models/User";
|
|||||||
|
|
||||||
export default class AuthController {
|
export default class AuthController {
|
||||||
|
|
||||||
public async login ({ request, auth, response }: HttpContextContract) {
|
public async loginApi ({ request, auth, response }: HttpContextContract) {
|
||||||
const email = request.input('email')
|
const email = request.input('email')
|
||||||
const password = request.input('password')
|
const password = request.input('password')
|
||||||
const infinity = request.input('infinity', false)
|
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'
|
expiresIn: infinity ? '' : '2 days'
|
||||||
})
|
})
|
||||||
return response.status(200).send({
|
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) {
|
public async createInfiniteToken ({ request, auth, response }: HttpContextContract) {
|
||||||
const email = request.input('email')
|
const email = request.input('email')
|
||||||
const password = request.input('password')
|
const password = request.input('password')
|
||||||
@@ -25,8 +37,17 @@ export default class AuthController {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public async logout ({ auth, response }: HttpContextContract) {
|
public async logoutApi ({ auth, response }: HttpContextContract) {
|
||||||
await auth.logout()
|
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({
|
return response.status(200).send({
|
||||||
message: 'You have been disconnected!'
|
message: 'You have been disconnected!'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const sessionConfig: SessionConfig = {
|
|||||||
| Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on.
|
| 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.get('/me', 'AuthController.user').middleware('auth')
|
||||||
Route.post('/token', 'AuthController.createInfiniteToken')
|
Route.post('/token', 'AuthController.createInfiniteToken')
|
||||||
|
|
||||||
Route.post('/login', 'AuthController.login')
|
Route.group(() => {
|
||||||
Route.post('/logout', 'AuthController.logout')
|
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')
|
}).prefix('/auth')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user