unified Auth results

This commit is contained in:
Sockenklaus
2021-10-21 01:25:19 +02:00
parent 43d7c01dd3
commit 293d192691

View File

@@ -1,22 +1,55 @@
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import Logger from '@ioc:Adonis/Core/Logger' import Logger from '@ioc:Adonis/Core/Logger'
type AuthSuccResult = {
notification: {
type: string,
text: string
}
user: string,
role: string
}
type AuthErrResult = {
notification: {
text: string,
type: string
}
}
export default class AuthController { export default class AuthController {
public async login({auth, request, response}: HttpContextContract) { public async login({auth, request, response}: HttpContextContract) {
const username = request.body().username const username = request.body().username
const password = request.body().password const password = request.body().password
const rememberMe = request.body().rememberMe ?? false
try { try {
await auth.attempt(username, password) await auth.attempt(username, password, rememberMe)
return response.ok({
Message: 'Login successful!', const result : AuthSuccResult = {
user: auth.user?.username, notification: {
role: auth.user?.role type: 'success',
}) text: 'Login successful!'
},
user: auth.user?.username ?? '',
role: auth.user?.role ?? ''
}
return response.ok(result)
} catch (error) { } catch (error) {
return response.forbidden('Unauthorized') const result : AuthErrResult = {
} notification: {
type: 'danger',
text: error.message
}
}
return response.forbidden(result)
}
} }
public async logout({auth, response}: HttpContextContract) { public async logout({auth, response}: HttpContextContract) {