Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 7x 19x 19x 19x 19x 19x 19x | import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
import { db } from "../db/index.js";
import * as schema from "../db/schema.js";
import { signAccessToken } from "./jwt.js";
import { generateRefreshToken } from "./tokens.js";
const SESSION_TTL_DAYS = 30;
export async function createSession(
userId: string,
tx?: PostgresJsDatabase<typeof schema>,
) {
const conn = tx ?? db;
const refreshToken = generateRefreshToken();
const expiresAt = new Date(Date.now() + SESSION_TTL_DAYS * 24 * 60 * 60 * 1000);
await conn.insert(schema.sessions).values({
userId,
refreshToken,
expiresAt,
});
const accessToken = signAccessToken(userId);
return { accessToken, refreshToken };
}
|