admin soft delete functionality, also fixed google sign in when user doesn't have first and last name
This commit is contained in:
@@ -173,6 +173,7 @@ router.post(
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
isVerified: user.isVerified,
|
||||
role: user.role,
|
||||
},
|
||||
verificationEmailSent,
|
||||
// Don't send token in response body for security
|
||||
@@ -269,6 +270,7 @@ router.post(
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
isVerified: user.isVerified,
|
||||
role: user.role,
|
||||
},
|
||||
// Don't send token in response body for security
|
||||
});
|
||||
@@ -318,15 +320,36 @@ router.post(
|
||||
const {
|
||||
sub: googleId,
|
||||
email,
|
||||
given_name: firstName,
|
||||
family_name: lastName,
|
||||
given_name: givenName,
|
||||
family_name: familyName,
|
||||
picture,
|
||||
} = payload;
|
||||
|
||||
if (!email || !firstName || !lastName) {
|
||||
if (!email) {
|
||||
return res
|
||||
.status(400)
|
||||
.json({ error: "Required user information not provided by Google" });
|
||||
.json({ error: "Email not provided by Google" });
|
||||
}
|
||||
|
||||
// Handle cases where Google doesn't provide name fields
|
||||
// Generate fallback values from email or use placeholder
|
||||
let firstName = givenName;
|
||||
let lastName = familyName;
|
||||
|
||||
if (!firstName || !lastName) {
|
||||
const emailUsername = email.split('@')[0];
|
||||
// Try to split email username by common separators
|
||||
const nameParts = emailUsername.split(/[._-]/);
|
||||
|
||||
if (!firstName) {
|
||||
firstName = nameParts[0] ? nameParts[0].charAt(0).toUpperCase() + nameParts[0].slice(1) : 'Google';
|
||||
}
|
||||
|
||||
if (!lastName) {
|
||||
lastName = nameParts.length > 1
|
||||
? nameParts[nameParts.length - 1].charAt(0).toUpperCase() + nameParts[nameParts.length - 1].slice(1)
|
||||
: 'User';
|
||||
}
|
||||
}
|
||||
|
||||
// Check if user exists by Google ID first
|
||||
@@ -422,6 +445,7 @@ router.post(
|
||||
lastName: user.lastName,
|
||||
profileImage: user.profileImage,
|
||||
isVerified: user.isVerified,
|
||||
role: user.role,
|
||||
},
|
||||
// Don't send token in response body for security
|
||||
});
|
||||
@@ -658,6 +682,7 @@ router.post("/refresh", async (req, res) => {
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
isVerified: user.isVerified,
|
||||
role: user.role,
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user