ToDo/src/routes/api/refresh/+server.ts

28 lines
750 B
TypeScript

import type { RequestHandler } from "./$types"
import { error, json } from "@sveltejs/kit"
import UserMgmt from "$lib/server/usermgmt"
import { RefreshResponseCause } from "$lib/errors"
export const POST: RequestHandler = async ({ request }) => {
const data = await request.json()
const token = data["token"]
if (!token || typeof token !== "string") {
return error(400, { cause: RefreshResponseCause.MalformedRequest, message: "token must be provided as string." })
}
const new_session = await UserMgmt.refresh_session(token)
if (!new_session) {
return error(401, { cause: RefreshResponseCause.InvalidSession, message: "No session for token" })
}
return json({
token: new_session.token,
expires: new_session.expires
})
}