32 lines
792 B
JavaScript
32 lines
792 B
JavaScript
import Staff from '../staff/model.mjs'
|
|
import Jwt from '../jwt.mjs'
|
|
import * as security from './security.mjs'
|
|
import AuthHelper from './helper.mjs'
|
|
|
|
export default class AuthRoutes {
|
|
constructor(opts = {}) {
|
|
Object.assign(this, {
|
|
helper: opts.helper || new AuthHelper(),
|
|
Staff: opts.Staff || Staff,
|
|
jwt: opts.jwt || new Jwt(),
|
|
security: opts.security || security,
|
|
})
|
|
}
|
|
|
|
/*
|
|
* POST /api/login/user - Authenticate a user using password login
|
|
*
|
|
* @body {string} username - Username
|
|
* @body {string} password - Password
|
|
* @returns
|
|
*
|
|
* { token: 'Authentication token' }
|
|
*/
|
|
async loginUser(ctx) {
|
|
this.security.isValidLogin(ctx, ctx.request.body)
|
|
|
|
let token = await this.helper.loginStaff(ctx)
|
|
|
|
ctx.body = { token }
|
|
}
|
|
}
|