Shaki
Shaki
BABetter Auth
Created by Shaki on 5/13/2025 in #help
session null in nextjs route handler
I know auth and sessions is working because it I can log in and out with no problem. My server functions are able to get sessions but whenever I try and get the session from a route handler it's null This same function is used throughout my app and works everywhere except route handlers
const session = await auth.api.getSession({
headers: await headers(),
});

if (!session) {
return {
user: null,
session: null,
};
}

return {
session: session.session,
user: session.user,
};
const session = await auth.api.getSession({
headers: await headers(),
});

if (!session) {
return {
user: null,
session: null,
};
}

return {
session: session.session,
user: session.user,
};
3 replies
BABetter Auth
Created by Shaki on 2/7/2025 in #help
Email does not exist on user table
I'm having problems signing users up. I keep getting email does not exist on users table even though I have it set up.
export const auth: any = betterAuth({
user: {
modelName: "users",
fields: {
emailVerified: "email_verified",
createdAt: "created_at",
updatedAt: "updated_at",
},
}
})
export const auth: any = betterAuth({
user: {
modelName: "users",
fields: {
emailVerified: "email_verified",
createdAt: "created_at",
updatedAt: "updated_at",
},
}
})
export const users = sqliteTable("users", {
id: text("id")
.unique()
.primaryKey()
.notNull(),
createdAt: integer("created_at", { mode: "timestamp" }),
updatedAt: integer("updated_at", { mode: "timestamp" }),
image: text("image"),
name: text("name", { length: 100 }).notNull(),
lastName: text("last_name", { length: 100 }),
phoneNumber: text("phone_number", { length: 20 }),
email: text("email").notNull().unique(),
stripeCustomerId: text("stripe_customer_id").unique(),
stripeSubscriptionId: text("stripe_subscription_id").unique(),
subscriptionExpiresAt: text("subscription_expires_at"),
role: text("role", {
length: 20,
enum: ["user", "owner", "pro", "admin"],
})
.default("owner")
.notNull(),
emailVerified: integer("email_verified", { mode: "boolean" })
.default(false)
.notNull(),
});
export const users = sqliteTable("users", {
id: text("id")
.unique()
.primaryKey()
.notNull(),
createdAt: integer("created_at", { mode: "timestamp" }),
updatedAt: integer("updated_at", { mode: "timestamp" }),
image: text("image"),
name: text("name", { length: 100 }).notNull(),
lastName: text("last_name", { length: 100 }),
phoneNumber: text("phone_number", { length: 20 }),
email: text("email").notNull().unique(),
stripeCustomerId: text("stripe_customer_id").unique(),
stripeSubscriptionId: text("stripe_subscription_id").unique(),
subscriptionExpiresAt: text("subscription_expires_at"),
role: text("role", {
length: 20,
enum: ["user", "owner", "pro", "admin"],
})
.default("owner")
.notNull(),
emailVerified: integer("email_verified", { mode: "boolean" })
.default(false)
.notNull(),
});
4 replies