forked from geolba/tethys.backend
25 lines
651 B
TypeScript
25 lines
651 B
TypeScript
import type { HttpContext } from '@adonisjs/core/http'
|
|
import type { NextFn } from '@adonisjs/core/types/http'
|
|
import type { Authenticators } from '@adonisjs/auth/types'
|
|
|
|
/**
|
|
* Auth middleware is used authenticate HTTP requests and deny
|
|
* access to unauthenticated users.
|
|
*/
|
|
export default class AuthMiddleware {
|
|
/**
|
|
* The URL to redirect to, when authentication fails
|
|
*/
|
|
redirectTo = '/app/login'
|
|
|
|
async handle(
|
|
ctx: HttpContext,
|
|
next: NextFn,
|
|
options: {
|
|
guards?: (keyof Authenticators)[]
|
|
} = {}
|
|
) {
|
|
await ctx.auth.authenticateUsing(options.guards, { loginRoute: this.redirectTo })
|
|
return next()
|
|
}
|
|
} |