mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
65 lines
No EOL
1.7 KiB
JavaScript
65 lines
No EOL
1.7 KiB
JavaScript
const fs = require('fs');
|
|
|
|
const settings = {
|
|
"passport-js":{
|
|
"gmatte" : {
|
|
type: "oauth",
|
|
authorization_url: process.env['OAUTH_AuthorizeUrl'],
|
|
client_id : process.env['OAUTH_ClientID'],
|
|
client_secret: process.env['OAUTH_ClientSecret'],
|
|
config_url: process.env['OAUTH_ConfigUrl'],
|
|
userinfo_url: process.env['OAUTH_UserinfoUrl'],
|
|
token_url: process.env['OAUTH_TokenUrl'],
|
|
logout_url: process.env['OAUTH_LogoutUrl'],
|
|
jwks : process.env['OAUTH_JWKS'],
|
|
scopes: ['openid','email','profile','groups','offline_access']
|
|
},
|
|
}
|
|
}
|
|
|
|
class AuthManager{
|
|
constructor(expressapp){
|
|
this.modules = []
|
|
this.app = expressapp
|
|
}
|
|
|
|
async addModule(name){
|
|
const modulePath = `${process.cwd()}/auth/modules/${name}.js`
|
|
|
|
if(fs.existsSync(modulePath)){
|
|
const Module = require(modulePath);
|
|
this.modules.push(new Module(this,settings[name]));
|
|
console.debug(`Auth module ${name} added`)
|
|
}
|
|
}
|
|
|
|
async registerAuths(){
|
|
for(const module of this.modules){
|
|
module.registerAuth(this.app)
|
|
}
|
|
}
|
|
|
|
async showAuths(){
|
|
let authsData = []
|
|
for(const module in this.modules){
|
|
authsData.push(module.showAuth())
|
|
}
|
|
return authsData;
|
|
}
|
|
|
|
async login(userInfos){
|
|
// TODO global user login method
|
|
console.log(userInfos)
|
|
}
|
|
|
|
async register(userInfos){
|
|
// TODO global user register method
|
|
console.log(userInfos)
|
|
}
|
|
|
|
async logout(){
|
|
// TODO global user logout method
|
|
}
|
|
}
|
|
|
|
module.exports = AuthManager; |