refactor 3ptid passport strategies

This commit is contained in:
HF 2022-06-21 10:19:33 +02:00
parent 0078626d7c
commit 1d9fa2a310

View File

@ -42,7 +42,6 @@ passport.use(new JsonStrategy({
usernameProp: 'nameoremail', usernameProp: 'nameoremail',
passwordProp: 'password', passwordProp: 'password',
}, async (nameoremail, password, done) => { }, async (nameoremail, password, done) => {
try {
// Decide if email or name by the occurance of @ // Decide if email or name by the occurance of @
// this is why we don't allow @ in usernames // this is why we don't allow @ in usernames
// NOTE: could allow @ in the future by making an OR query, // NOTE: could allow @ in the future by making an OR query,
@ -67,9 +66,6 @@ passport.use(new JsonStrategy({
await user.initialize(reguser.id, null, reguser); await user.initialize(reguser.id, null, reguser);
user.updateLogInTimestamp(); user.updateLogInTimestamp();
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));
/* /*
@ -124,14 +120,10 @@ passport.use(new FacebookStrategy({
proxy: true, proxy: true,
profileFields: ['displayName', 'email'], profileFields: ['displayName', 'email'],
}, async (req, accessToken, refreshToken, profile, done) => { }, async (req, accessToken, refreshToken, profile, done) => {
try {
const { displayName: name, emails } = profile; const { displayName: name, emails } = profile;
const email = emails[0].value; const email = emails[0].value;
const user = await oauthLogin(email, name); const user = await oauthLogin(email, name);
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));
/** /**
@ -142,20 +134,16 @@ passport.use(new DiscordStrategy({
callbackURL: '/api/auth/discord/return', callbackURL: '/api/auth/discord/return',
proxy: true, proxy: true,
}, async (accessToken, refreshToken, profile, done) => { }, async (accessToken, refreshToken, profile, done) => {
try {
logger.info({ profile, refreshToken, accessToken }); logger.info({ profile, refreshToken, accessToken });
const { id, email, username: name } = profile; const { id, email, username: name } = profile;
if (!email) { if (!email) {
done(null, false, { throw new Error(
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
message: 'Sorry, you can not use discord login with an discord account that does not have email set.', 'Sorry, you can not use discord login with an discord account that does not have email set.',
}); );
} }
const user = await oauthLogin(email, name, id); const user = await oauthLogin(email, name, id);
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));
/** /**
@ -166,14 +154,10 @@ passport.use(new GoogleStrategy({
callbackURL: '/api/auth/google/return', callbackURL: '/api/auth/google/return',
proxy: true, proxy: true,
}, async (accessToken, refreshToken, profile, done) => { }, async (accessToken, refreshToken, profile, done) => {
try {
const { displayName: name, emails } = profile; const { displayName: name, emails } = profile;
const email = emails[0].value; const email = emails[0].value;
const user = await oauthLogin(email, name); const user = await oauthLogin(email, name);
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));
/* /*
@ -184,7 +168,6 @@ passport.use(new RedditStrategy({
callbackURL: '/api/auth/reddit/return', callbackURL: '/api/auth/reddit/return',
proxy: true, proxy: true,
}, async (accessToken, refreshToken, profile, done) => { }, async (accessToken, refreshToken, profile, done) => {
try {
logger.info({ profile, refreshToken, accessToken }); logger.info({ profile, refreshToken, accessToken });
const redditid = profile.id; const redditid = profile.id;
let name = sanitizeName(profile.name); let name = sanitizeName(profile.name);
@ -218,9 +201,6 @@ passport.use(new RedditStrategy({
const user = new User(); const user = new User();
await user.initialize(reguser.id, null, reguser); await user.initialize(reguser.id, null, reguser);
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));
/** /**
@ -233,22 +213,17 @@ passport.use(new VkontakteStrategy({
scope: ['email'], scope: ['email'],
profileFields: ['displayName', 'email'], profileFields: ['displayName', 'email'],
}, async (accessToken, refreshToken, params, profile, done) => { }, async (accessToken, refreshToken, params, profile, done) => {
try {
logger.info(profile); logger.info(profile);
const { displayName: name } = profile; const { displayName: name } = profile;
const { email } = params; const { email } = params;
if (!email) { if (!email) {
done(null, false, { throw new Error(
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
message: 'Sorry, you can not use vk login with an account that does not have a verified email set.', 'Sorry, you can not use vk login with an account that does not have a verified email set.',
}); );
return;
} }
const user = await oauthLogin(email, name); const user = await oauthLogin(email, name);
done(null, user); done(null, user);
} catch (err) {
done(err);
}
})); }));