mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-11 05:02:37 +01:00
🐛 fix login + register
This commit is contained in:
parent
b5722fd3fd
commit
65eeb4d80a
@ -21,11 +21,14 @@ router.post(
|
|||||||
}),
|
}),
|
||||||
async (req: Request, res: Response) => {
|
async (req: Request, res: Response) => {
|
||||||
const { login, password } = req.body;
|
const { login, password } = req.body;
|
||||||
|
const email = adjustEmail(login);
|
||||||
|
const query: any[] = [{ phone: login }];
|
||||||
|
if (email) query.push({ email });
|
||||||
|
|
||||||
// * MongoDB Specific query for user with same email or phone number
|
// * MongoDB Specific query for user with same email or phone number
|
||||||
const user = await UserModel.findOne(
|
const user = await UserModel.findOne(
|
||||||
{
|
{
|
||||||
$or: [{ email: adjustEmail(login) }, { phone: login }],
|
$or: query,
|
||||||
},
|
},
|
||||||
`hash id user_settings.locale user_settings.theme`
|
`hash id user_settings.locale user_settings.theme`
|
||||||
).exec();
|
).exec();
|
||||||
|
@ -37,10 +37,10 @@ router.post(
|
|||||||
} = req.body;
|
} = req.body;
|
||||||
// TODO: automatically join invite
|
// TODO: automatically join invite
|
||||||
// TODO: gift_code_sku_id?
|
// TODO: gift_code_sku_id?
|
||||||
// TODO: check passwort strength
|
// TODO: check password strength
|
||||||
|
|
||||||
// adjusted_email will be slightly modified version of the user supplied email -> e.g. protection against GMail Trick
|
// adjusted_email will be slightly modified version of the user supplied email -> e.g. protection against GMail Trick
|
||||||
let adjusted_email: string = email;
|
let adjusted_email: string | undefined = adjustEmail(email);
|
||||||
|
|
||||||
// adjusted_password will be the hash of the password
|
// adjusted_password will be the hash of the password
|
||||||
let adjusted_password: string = "";
|
let adjusted_password: string = "";
|
||||||
@ -77,7 +77,7 @@ router.post(
|
|||||||
|
|
||||||
if (email) {
|
if (email) {
|
||||||
// replace all dots and chars after +, if its a gmail.com email
|
// replace all dots and chars after +, if its a gmail.com email
|
||||||
adjusted_email = adjustEmail(email);
|
if (!adjusted_email) throw FieldErrors({ email: { code: "INVALID_EMAIL", message: "Invalid Email format" } });
|
||||||
|
|
||||||
// check if there is already an account with this email
|
// check if there is already an account with this email
|
||||||
const exists = await UserModel.findOne({ email: adjusted_email }).exec();
|
const exists = await UserModel.findOne({ email: adjusted_email }).exec();
|
||||||
@ -203,6 +203,7 @@ router.post(
|
|||||||
enable_tts_command: true,
|
enable_tts_command: true,
|
||||||
explicit_content_filter: 0,
|
explicit_content_filter: 0,
|
||||||
friend_source_flags: { all: true },
|
friend_source_flags: { all: true },
|
||||||
|
gateway_connected: false,
|
||||||
gif_auto_play: true,
|
gif_auto_play: true,
|
||||||
guild_folders: [],
|
guild_folders: [],
|
||||||
guild_positions: [],
|
guild_positions: [],
|
||||||
@ -230,9 +231,11 @@ router.post(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export function adjustEmail(email: string) {
|
export function adjustEmail(email: string): string | undefined {
|
||||||
// body parser already checked if it is a valid email
|
// body parser already checked if it is a valid email
|
||||||
const parts = <RegExpMatchArray>email.match(EMAIL_REGEX);
|
const parts = <RegExpMatchArray>email.match(EMAIL_REGEX);
|
||||||
|
// @ts-ignore
|
||||||
|
if (!parts || parts.length < 5) return undefined;
|
||||||
const domain = parts[5];
|
const domain = parts[5];
|
||||||
const user = parts[1];
|
const user = parts[1];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user