login api improvements

This commit is contained in:
slawk0
2024-12-03 20:02:28 +01:00
parent 8496b92f77
commit e712cef761
4 changed files with 14 additions and 11 deletions

View File

@@ -81,7 +81,9 @@ function MessagesArea({
msg.sender !== username
) {
setContactsList((prevContacts) => {
if (!prevContacts.some((c) => c.username === msg.sender)) {
if (
!prevContacts.some((c) => c.conversation_id === msg.conversation_id)
) {
sendContact(msg.sender);
return [
...prevContacts,

View File

@@ -37,6 +37,7 @@ export default function Login() {
setMessage('');
setTimeout(() => {
setMessage(err.response.data.message);
setIsLoading(false);
}, 100);
console.error(err);

View File

@@ -135,14 +135,14 @@ async function insertUser(username, passwordHash) {
async function getUserId(username) {
const query = `
SELECT user_id FROM Accounts
WHERE username = $1;
SELECT user_id, username AS dbUsername FROM Accounts
WHERE LOWER(username) = $1;
`;
try {
const result = await client.query(query, [username]);
if (result.rows.length > 0) {
console.log("GETUSERID: ", result.rows[0].user_id);
return result.rows[0].user_id;
console.log("GETUSERID: ", result.rows[0]);
return result.rows[0];
} else {
console.log("No user found with username: ", username);
return null;
@@ -223,7 +223,7 @@ async function addMemberToGroupByUsername(conversation_id, username) {
WITH user_id_query AS (
SELECT user_id
FROM Accounts
WHERE username = $1
WHERE LOWER(username) = $1
LIMIT 1
),
insert_membership AS (
@@ -411,13 +411,13 @@ async function insertContact(userUsername, receiverUsername, read) {
WITH sender AS (
SELECT user_id
FROM Accounts
WHERE username = $1
WHERE LOWER(username) = $1
LIMIT 1
),
receiver AS (
SELECT user_id
FROM Accounts
WHERE username = $2
WHERE LOWER(username) = $2
LIMIT 1
),
existing_conversation AS (

View File

@@ -149,7 +149,7 @@ app.post("/api/auth/signup", async (req, res) => {
app.post("/api/auth/login", async (req, res) => {
try {
const username = req.body.username?.trim().toLowerCase();
const username = req.body.username?.trim();
const password = req.body.password;
if (!isValidUsername(username)) {
@@ -181,8 +181,8 @@ app.post("/api/auth/login", async (req, res) => {
res.status(401).json({ message: "Invalid password" });
return;
}
const user_id = await getUserId(username);
const token = generateJwtToken(username, user_id);
const { user_id, dbusername } = await getUserId(username);
const token = generateJwtToken(dbusername, user_id);
res.cookie("token", token, {
maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days
});