mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
42 lines
No EOL
1.2 KiB
JavaScript
42 lines
No EOL
1.2 KiB
JavaScript
const fs = require('fs');
|
|
var passport = require('passport')
|
|
|
|
class PassportJs{
|
|
constructor(authmanager,settings){
|
|
this.authmanager = authmanager
|
|
this.registeredProviders = {}
|
|
this.providers = Object.entries(settings)
|
|
}
|
|
|
|
registerAuth(expressapp){
|
|
expressapp.use(passport.initialize());
|
|
expressapp.use(passport.session());
|
|
|
|
for(const [name,provider] of this.providers){
|
|
if(!(provider.type in this.registeredProviders)){
|
|
this.registerProvider(provider.type)
|
|
}
|
|
this.registeredProviders[provider.type].register(expressapp,passport,name,provider)
|
|
}
|
|
|
|
passport.serializeUser(function(user, done) {
|
|
done(null, user);
|
|
});
|
|
|
|
passport.deserializeUser(function(user, done) {
|
|
done(null, user);
|
|
});
|
|
}
|
|
|
|
registerProvider(providerType){
|
|
const providerPath = `${process.cwd()}/auth/modules/passport-providers/${providerType}.js`
|
|
|
|
if(fs.existsSync(providerPath)){
|
|
const Provider = require(providerPath);
|
|
this.registeredProviders[providerType]= new Provider()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = PassportJs; |