mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
fixes 500 error
This commit is contained in:
parent
101fb2a767
commit
6a330774b3
2 changed files with 52 additions and 25 deletions
|
|
@ -52,7 +52,12 @@ app.use('/api/image', imagesRouter);
|
||||||
|
|
||||||
// Add Auths methods
|
// Add Auths methods
|
||||||
const session = require('express-session');
|
const session = require('express-session');
|
||||||
app.use(session({secret: process.env['SESSION_Secret']}));
|
app.use(session({
|
||||||
|
secret: process.env['SESSION_Secret'],
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: false,
|
||||||
|
cookie: { secure: process.env.NODE_ENV === 'production' }
|
||||||
|
}));
|
||||||
|
|
||||||
authManager = new AuthManager(app)
|
authManager = new AuthManager(app)
|
||||||
authManager.addModule('passport-js')
|
authManager.addModule('passport-js')
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
var OAuth2Strategy = require('passport-oauth2')
|
var OAuth2Strategy = require('passport-oauth2')
|
||||||
|
|
||||||
class PassportOAuth {
|
class PassportOAuth {
|
||||||
|
|
||||||
register(app, passport, name, provider) {
|
register(app, passport, name, provider) {
|
||||||
passport.use(name, new OAuth2Strategy({
|
passport.use(name, new OAuth2Strategy({
|
||||||
authorizationURL: provider.authorization_url,
|
authorizationURL: provider.authorization_url,
|
||||||
|
|
@ -9,35 +8,58 @@ class PassportOAuth{
|
||||||
clientID: provider.client_id,
|
clientID: provider.client_id,
|
||||||
clientSecret: provider.client_secret,
|
clientSecret: provider.client_secret,
|
||||||
callbackURL: `http://localhost:4400/api/auth/gmatte/callback`,
|
callbackURL: `http://localhost:4400/api/auth/gmatte/callback`,
|
||||||
|
passReqToCallback: true
|
||||||
},
|
},
|
||||||
async function(accessToken, refreshToken, params, profile, done) {
|
async function(req, accessToken, refreshToken, params, profile, done) {
|
||||||
try {
|
try {
|
||||||
const req = await fetch(provider.userinfo_url,{
|
const userInfoResponse = await fetch(provider.userinfo_url, {
|
||||||
headers:{
|
headers: { 'Authorization': `Bearer ${accessToken}` }
|
||||||
Authorization:`Bearer ${accessToken}`
|
});
|
||||||
}
|
const userInfo = await userInfoResponse.json();
|
||||||
})
|
|
||||||
|
|
||||||
const data = await req.json()
|
const user = {
|
||||||
profile = data
|
id: userInfo.sub,
|
||||||
done(null,{accessToken,refreshToken,profile});
|
email: userInfo.email,
|
||||||
|
name: userInfo.name,
|
||||||
|
accessToken: accessToken,
|
||||||
|
refreshToken: refreshToken,
|
||||||
|
expiresIn: params.expires_in
|
||||||
|
};
|
||||||
|
|
||||||
|
// Store the tokens in the session
|
||||||
|
req.session.oauth2Tokens = {
|
||||||
|
accessToken: accessToken,
|
||||||
|
refreshToken: refreshToken,
|
||||||
|
expiresIn: params.expires_in
|
||||||
|
};
|
||||||
|
|
||||||
|
return done(null, user);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.error(`Error in OAuth2 Strategy ${name} :`, error);
|
||||||
return done(error);
|
return done(error);
|
||||||
}
|
}
|
||||||
}
|
}));
|
||||||
));
|
|
||||||
|
|
||||||
app.use(`/api/auth/${name}`, passport.authenticate(name,{scope: provider.scopes.join(' ') ?? 'openid profile email'}));
|
app.get(`/api/auth/${name}`, (req, res, next) => {
|
||||||
app.use(`/api/auth/${name}/callback`,
|
|
||||||
passport.authenticate(name, {
|
passport.authenticate(name, {
|
||||||
successRedirect: '/',
|
scope: provider.scopes.join(' ') ?? 'openid profile email offline_access',
|
||||||
failureRedirect: '/login',
|
prompt: 'consent'
|
||||||
session:false
|
})(req, res, next);
|
||||||
}),
|
});
|
||||||
function(accessToken, refreshToken, params, profile, cb) {
|
|
||||||
console.log(params);
|
app.get(`/api/auth/${name}/callback`,
|
||||||
|
(req, res, next) => {
|
||||||
|
passport.authenticate(name, { failureRedirect: '/login' })(req, res, next);
|
||||||
|
},
|
||||||
|
(req, res) => {
|
||||||
|
if (req.user) {
|
||||||
|
res.json(req.user)
|
||||||
|
} else {
|
||||||
|
res.status(401).json({ error: 'Authentication failed' });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = PassportOAuth;
|
module.exports = PassportOAuth;
|
||||||
Loading…
Reference in a new issue