try to fix issues with logging in on linux
This commit is contained in:
+26
-9
@@ -20,11 +20,11 @@ const wss = new WebSocketServer({server});
|
|||||||
let db;
|
let db;
|
||||||
const authCookieOptions = {
|
const authCookieOptions = {
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: process.env.NODE_ENV === "production",
|
|
||||||
sameSite: "Strict",
|
sameSite: "Strict",
|
||||||
path: "/"
|
path: "/"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
app.set("trust proxy", 1);
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use("/swagger-ui", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
|
app.use("/swagger-ui", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
@@ -62,11 +62,26 @@ function getAuthRequestDetails(request) {
|
|||||||
method: request.method,
|
method: request.method,
|
||||||
path: request.originalUrl || request.url,
|
path: request.originalUrl || request.url,
|
||||||
userAgent: request.get("user-agent"),
|
userAgent: request.get("user-agent"),
|
||||||
|
protocol: request.protocol,
|
||||||
|
forwardedProto: request.get("x-forwarded-proto"),
|
||||||
|
secure: request.secure,
|
||||||
hasBearerHeader: Boolean(request.headers.authorization),
|
hasBearerHeader: Boolean(request.headers.authorization),
|
||||||
hasAuthCookie: Boolean(request.cookies?.authorization)
|
hasAuthCookie: Boolean(request.cookies?.authorization)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isSecureAuthRequest(request) {
|
||||||
|
const forwardedProto = request.get("x-forwarded-proto");
|
||||||
|
return request.secure || forwardedProto?.split(",")[0].trim() === "https";
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAuthCookieOptions(request) {
|
||||||
|
return {
|
||||||
|
...authCookieOptions,
|
||||||
|
secure: isSecureAuthRequest(request)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Here are Helper function -----------------------------------------------------------------------------------------------
|
Here are Helper function -----------------------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@@ -170,14 +185,16 @@ function generateAccessToken(user) {
|
|||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setAuthCookie(response, token) {
|
function setAuthCookie(request, response, token) {
|
||||||
|
const cookieOptions = getAuthCookieOptions(request);
|
||||||
logAuthEvent("info", "Setting authorization cookie", {
|
logAuthEvent("info", "Setting authorization cookie", {
|
||||||
secure: authCookieOptions.secure,
|
...getAuthRequestDetails(request),
|
||||||
sameSite: authCookieOptions.sameSite,
|
secure: cookieOptions.secure,
|
||||||
httpOnly: authCookieOptions.httpOnly,
|
sameSite: cookieOptions.sameSite,
|
||||||
|
httpOnly: cookieOptions.httpOnly,
|
||||||
token: getTokenLogDetails(token)
|
token: getTokenLogDetails(token)
|
||||||
});
|
});
|
||||||
response.cookie("authorization", token, authCookieOptions);
|
response.cookie("authorization", token, cookieOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
function normalizeUsername(username) {
|
function normalizeUsername(username) {
|
||||||
@@ -306,7 +323,7 @@ app.post("/register", async (request, response) => {
|
|||||||
username,
|
username,
|
||||||
token: getTokenLogDetails(token)
|
token: getTokenLogDetails(token)
|
||||||
});
|
});
|
||||||
setAuthCookie(response, token);
|
setAuthCookie(request, response, token);
|
||||||
logAuthEvent("info", "Register request completed", {username});
|
logAuthEvent("info", "Register request completed", {username});
|
||||||
response.json({username, token});
|
response.json({username, token});
|
||||||
});
|
});
|
||||||
@@ -371,7 +388,7 @@ app.post("/login", async (request, response) => {
|
|||||||
username,
|
username,
|
||||||
token: getTokenLogDetails(token)
|
token: getTokenLogDetails(token)
|
||||||
});
|
});
|
||||||
setAuthCookie(response, token);
|
setAuthCookie(request, response, token);
|
||||||
logAuthEvent("info", "Login request completed", {
|
logAuthEvent("info", "Login request completed", {
|
||||||
username,
|
username,
|
||||||
token: getTokenLogDetails(token)
|
token: getTokenLogDetails(token)
|
||||||
@@ -442,7 +459,7 @@ app.delete("/logout", authenticateToken, async (request, response) => {
|
|||||||
username,
|
username,
|
||||||
previousToken: getTokenLogDetails(user.token)
|
previousToken: getTokenLogDetails(user.token)
|
||||||
});
|
});
|
||||||
response.clearCookie("authorization", authCookieOptions);
|
response.clearCookie("authorization", getAuthCookieOptions(request));
|
||||||
logAuthEvent("info", "Logout request completed", {username});
|
logAuthEvent("info", "Logout request completed", {username});
|
||||||
response.json({message: "Logged out successfully."});
|
response.json({message: "Logged out successfully."});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user