29 lines
975 B
TypeScript
29 lines
975 B
TypeScript
import {BunRequest as Request} from "bun";
|
|
import {Claims, orm} from "../utilities/orm.ts";
|
|
import jwt from "jsonwebtoken";
|
|
|
|
async function login(request: Request): Promise<Response> {
|
|
try {
|
|
const requestBody = await request.json();
|
|
console.log(`/api/auth/login: username=${requestBody.username}`);
|
|
const claims: Claims | null = await orm.users.verify(requestBody.username, requestBody.password);
|
|
console.log(claims);
|
|
if (claims) {
|
|
const token = jwt.sign({...claims}, process.env.JWT_SECRET_KEY as string, {expiresIn: "24h"});
|
|
return Response.json({token: token}, {status: 200});
|
|
}
|
|
|
|
return Response.json({token: null}, {status: 401});
|
|
} catch (e) {
|
|
console.log(e);
|
|
return Response.json({message: e}, {status: 401});
|
|
}
|
|
}
|
|
async function test(request: Request, claims: Claims) {
|
|
return Response.json(claims, {status: 200});
|
|
}
|
|
|
|
export default {
|
|
login,
|
|
test
|
|
}; |