SAML; Dashboard
This commit is contained in:
@@ -13,7 +13,7 @@ class Forms extends FormController {
|
||||
async login_provider_get(req, res, next) {
|
||||
return res.page('auth:login', {
|
||||
...this.Vue.data({
|
||||
login_message: 'Please sign-in to continue.'
|
||||
login_message: req.session?.auth?.message || 'Please sign-in to continue.'
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ const { Controller } = require('libflitter')
|
||||
|
||||
class MFAController extends Controller {
|
||||
static get services() {
|
||||
return [...super.services, 'Vue', 'configs']
|
||||
return [...super.services, 'Vue', 'configs', 'models']
|
||||
}
|
||||
|
||||
async setup(req, res, next) {
|
||||
@@ -39,6 +39,21 @@ class MFAController extends Controller {
|
||||
...this.Vue.data()
|
||||
})
|
||||
}
|
||||
|
||||
async get_disable(req, res, next) {
|
||||
return this.Vue.confirm(res, {
|
||||
message: `You are about to disable multi-factor authentication for your account. This process will require you to re-authenticate to continue. <br><br> Proceed?`,
|
||||
yes: '/auth/mfa/disable/process',
|
||||
no: '/dash/profile',
|
||||
})
|
||||
}
|
||||
|
||||
async do_disable(req, res, next) {
|
||||
return res.page('auth:mfa:disable', {
|
||||
...this.Vue.data(),
|
||||
...this.Vue.session(req),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = MFAController
|
||||
|
||||
17
app/controllers/auth/Password.controller.js
Normal file
17
app/controllers/auth/Password.controller.js
Normal file
@@ -0,0 +1,17 @@
|
||||
const { Controller } = require('libflitter')
|
||||
|
||||
class PasswordController extends Controller {
|
||||
static get services() {
|
||||
return [...super.services, 'Vue']
|
||||
}
|
||||
|
||||
async get_reset(req, res, next) {
|
||||
return res.page('auth:password:reset', {
|
||||
...this.Vue.data(),
|
||||
...this.Vue.session(req),
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = exports = PasswordController
|
||||
49
app/controllers/auth/Trust.controller.js
Normal file
49
app/controllers/auth/Trust.controller.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const { Controller } = require('libflitter')
|
||||
|
||||
class TrustController extends Controller {
|
||||
static get services() {
|
||||
return [...super.services, 'Vue']
|
||||
}
|
||||
|
||||
/*
|
||||
* Prompts the user to re-authenticate.
|
||||
* If successful, a trust token will be issued for the specified scope.
|
||||
*
|
||||
* Requires req.session.trust_flow = { scope: String, next: String }
|
||||
*/
|
||||
async get_issue(req, res, next) {
|
||||
if ( !req.trust.has_flow() )
|
||||
return res.status(400).message('Missing trust flow data.').send()
|
||||
|
||||
// Check if the session already has a token for this scope
|
||||
const has_scope = req.trust.has(req.trust.flow_scope())
|
||||
|
||||
// If so, redirect them to the destination
|
||||
if ( has_scope ) {
|
||||
return res.redirect(req.trust.end())
|
||||
}
|
||||
|
||||
// Otherwise, show the trust prompt for re-authorization
|
||||
const token = req.trust.start()
|
||||
return res.page('auth:trust:grant', {
|
||||
...this.Vue.data({
|
||||
grant_code: token,
|
||||
login_message: 'Please re-authenticate to continue.',
|
||||
}),
|
||||
...this.Vue.session(req)
|
||||
})
|
||||
}
|
||||
|
||||
/*async get_continue(req, res, next) {
|
||||
if ( !req.trust.has_flow() )
|
||||
return res.status(400).message('Missing trust flow data.')
|
||||
|
||||
if ( !req.trust.in_progress() )
|
||||
return res.status(401).message('No flow in progress. Please try again.')
|
||||
|
||||
req.trust.grant(req.trust.flow_scope())
|
||||
return res.redirect(req.trust.end())
|
||||
}*/
|
||||
}
|
||||
|
||||
module.exports = exports = TrustController
|
||||
Reference in New Issue
Block a user