import { createRandomStringGenerator } from "@better-auth/utils/random";
import { createHMAC } from "@better-auth/utils/hmac";
const user = await plainPrisma.user.upsert({
where: { email: STAGING_EMAIL },
update: {},
create: {
email: STAGING_EMAIL,
name: "Staging Test",
},
});
export const generateId = (size?: number) => {
return createRandomStringGenerator("a-z", "A-Z", "0-9")(size || 32);
};
const sessionToken = nanoid(64);
const session = await plainPrisma.session.create({
data: {
id: sessionToken,
token: sessionToken,
userId: user.id,
userAgent: "Playwright",
ipAddress: "::1",
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000), // 24 hours from now
createdAt: new Date(),
updatedAt: new Date(),
},
});
const signedToken = await createHMAC("SHA-256", "base64urlnopad").sign(
process.env.BETTER_AUTH_SECRET!, // Your Better Auth secret
sessionToken
);
// Set the cookies
const cookieStore = await cookies();
const secureCookie = process.env.NODE_ENV === "production";
// Set the main session cookie
cookieStore.set("better-auth.session_token", signedToken, {
expires: session.expiresAt,
httpOnly: true,
secure: secureCookie,
sameSite: "lax",
path: "/",
});
// Set the secure cookie if in production
if (secureCookie) {
cookieStore.set("__Secure-better-auth.session_token", signedToken, {
expires: session.expiresAt,
httpOnly: true,
secure: true,
sameSite: "lax",
path: "/",
});
}
import { createRandomStringGenerator } from "@better-auth/utils/random";
import { createHMAC } from "@better-auth/utils/hmac";
const user = await plainPrisma.user.upsert({
where: { email: STAGING_EMAIL },
update: {},
create: {
email: STAGING_EMAIL,
name: "Staging Test",
},
});
export const generateId = (size?: number) => {
return createRandomStringGenerator("a-z", "A-Z", "0-9")(size || 32);
};
const sessionToken = nanoid(64);
const session = await plainPrisma.session.create({
data: {
id: sessionToken,
token: sessionToken,
userId: user.id,
userAgent: "Playwright",
ipAddress: "::1",
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000), // 24 hours from now
createdAt: new Date(),
updatedAt: new Date(),
},
});
const signedToken = await createHMAC("SHA-256", "base64urlnopad").sign(
process.env.BETTER_AUTH_SECRET!, // Your Better Auth secret
sessionToken
);
// Set the cookies
const cookieStore = await cookies();
const secureCookie = process.env.NODE_ENV === "production";
// Set the main session cookie
cookieStore.set("better-auth.session_token", signedToken, {
expires: session.expiresAt,
httpOnly: true,
secure: secureCookie,
sameSite: "lax",
path: "/",
});
// Set the secure cookie if in production
if (secureCookie) {
cookieStore.set("__Secure-better-auth.session_token", signedToken, {
expires: session.expiresAt,
httpOnly: true,
secure: true,
sameSite: "lax",
path: "/",
});
}