SAML; Dashboard
This commit is contained in:
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