add session fix cors, add session
All checks were successful
Code quality checks / biome (push) Successful in 9s
All checks were successful
Code quality checks / biome (push) Successful in 9s
This commit is contained in:
parent
4936ff8978
commit
b31d77983c
4 changed files with 70 additions and 0 deletions
|
@ -8,6 +8,8 @@ const environment: Environment = {
|
||||||
development:
|
development:
|
||||||
process.env.NODE_ENV === "development" || process.argv.includes("--dev"),
|
process.env.NODE_ENV === "development" || process.argv.includes("--dev"),
|
||||||
fqdn: normalizeFqdn(process.env.FQDN) || "http://localhost:8080",
|
fqdn: normalizeFqdn(process.env.FQDN) || "http://localhost:8080",
|
||||||
|
frontendUrl:
|
||||||
|
normalizeFqdn(process.env.FRONTEND_URL) || "http://localhost:8080",
|
||||||
};
|
};
|
||||||
|
|
||||||
const dataType: { type: string; path: string | undefined } = {
|
const dataType: { type: string; path: string | undefined } = {
|
||||||
|
|
38
src/routes/auth/session.ts
Normal file
38
src/routes/auth/session.ts
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
const routeDef: RouteDef = {
|
||||||
|
method: "GET",
|
||||||
|
accepts: "*/*",
|
||||||
|
returns: "application/json",
|
||||||
|
};
|
||||||
|
|
||||||
|
async function handler(request: ExtendedRequest): Promise<Response> {
|
||||||
|
if (!request.session) {
|
||||||
|
return Response.json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
code: 403,
|
||||||
|
error: "Not logged in",
|
||||||
|
},
|
||||||
|
{ status: 403 },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { session } = request;
|
||||||
|
|
||||||
|
if ((session as ApiUserSession).is_api === true) {
|
||||||
|
return Response.json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
code: 403,
|
||||||
|
error: "You cannot use this endpoint with an authorization token",
|
||||||
|
},
|
||||||
|
{ status: 403 },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response.json({
|
||||||
|
success: true,
|
||||||
|
session,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export { routeDef, handler };
|
|
@ -116,6 +116,19 @@ class ServerHandler {
|
||||||
request: Request,
|
request: Request,
|
||||||
server: BunServer,
|
server: BunServer,
|
||||||
): Promise<Response> {
|
): Promise<Response> {
|
||||||
|
if (request.method === "OPTIONS") {
|
||||||
|
return new Response(null, {
|
||||||
|
status: 204,
|
||||||
|
headers: {
|
||||||
|
"Access-Control-Allow-Origin": environment.frontendUrl,
|
||||||
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
||||||
|
"Access-Control-Allow-Credentials": "true",
|
||||||
|
"Access-Control-Allow-Headers":
|
||||||
|
request.headers.get("Access-Control-Request-Headers") || "*",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const extendedRequest: ExtendedRequest = request as ExtendedRequest;
|
const extendedRequest: ExtendedRequest = request as ExtendedRequest;
|
||||||
extendedRequest.startPerf = performance.now();
|
extendedRequest.startPerf = performance.now();
|
||||||
|
|
||||||
|
@ -258,6 +271,22 @@ class ServerHandler {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (response?.headers) {
|
||||||
|
response.headers.set(
|
||||||
|
"Access-Control-Allow-Origin",
|
||||||
|
environment.frontendUrl,
|
||||||
|
);
|
||||||
|
response.headers.set(
|
||||||
|
"Access-Control-Allow-Methods",
|
||||||
|
"GET, POST, PUT, DELETE, OPTIONS",
|
||||||
|
);
|
||||||
|
response.headers.set("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.headers.set(
|
||||||
|
"Access-Control-Allow-Headers",
|
||||||
|
request.headers.get("Access-Control-Request-Headers") || "Content-Type",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
types/config.d.ts
vendored
1
types/config.d.ts
vendored
|
@ -3,6 +3,7 @@ type Environment = {
|
||||||
host: string;
|
host: string;
|
||||||
development: boolean;
|
development: boolean;
|
||||||
fqdn: string;
|
fqdn: string;
|
||||||
|
frontendUrl: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
type UserValidation = {
|
type UserValidation = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue