Files
easywish/frontend/src/lib/server/auth.js

32 lines
806 B
JavaScript

import { sha256 } from '@oslojs/crypto/sha2';
import { encodeBase64url, encodeHexLowerCase } from '@oslojs/encoding';
const DAY_IN_MS = 1000 * 60 * 60 * 24;
export const sessionCookieName = 'auth-session';
export function generateSessionToken() {
const bytes = crypto.getRandomValues(new Uint8Array(18));
const token = encodeBase64url(bytes);
return token;
}
/**
* @param {import("@sveltejs/kit").RequestEvent} event
* @param {string} token
* @param {Date} expiresAt
*/
export function setSessionTokenCookie(event, token, expiresAt) {
event.cookies.set(sessionCookieName, token, {
expires: expiresAt,
path: '/'
});
}
/** @param {import("@sveltejs/kit").RequestEvent} event */
export function deleteSessionTokenCookie(event) {
event.cookies.delete(sessionCookieName, {
path: '/'
});
}