feat: add actual user for trpc wss-dev-server (#261)
* feat: add actual user for trpc wss-dev-server #233 * chore: address pull request feedback * fix: deepsource issue
This commit is contained in:
@@ -17,3 +17,4 @@ export * from "./security";
|
||||
export const createHandlers = (isCredentialsRequest: boolean) =>
|
||||
createConfiguration(isCredentialsRequest);
|
||||
export const { auth } = createConfiguration(false);
|
||||
export { getSessionFromToken, sessionTokenCookieName } from "./session";
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { randomUUID } from "crypto";
|
||||
import type { Session } from "next-auth";
|
||||
|
||||
import type { Database } from "@homarr/db";
|
||||
|
||||
export const sessionMaxAgeInSeconds = 30 * 24 * 60 * 60; // 30 days
|
||||
export const sessionTokenCookieName = "next-auth.session-token";
|
||||
@@ -10,3 +13,38 @@ export const expireDateAfter = (seconds: number) => {
|
||||
export const generateSessionToken = () => {
|
||||
return randomUUID();
|
||||
};
|
||||
|
||||
export const getSessionFromToken = async (
|
||||
db: Database,
|
||||
token: string | undefined,
|
||||
): Promise<Session | null> => {
|
||||
if (!token) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const session = await db.query.sessions.findFirst({
|
||||
where: ({ sessionToken }, { eq }) => eq(sessionToken, token),
|
||||
columns: {
|
||||
expires: true,
|
||||
},
|
||||
with: {
|
||||
user: {
|
||||
columns: {
|
||||
id: true,
|
||||
name: true,
|
||||
email: true,
|
||||
image: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (!session) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
user: session.user,
|
||||
expires: session.expires.toISOString(),
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user