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