JWW
JWW
Explore posts from servers
BABetter Auth
Created by JWW on 3/27/2025 in #help
SignOut function doesn't immediately re-invoke session change
Appreciate your help, but this approach will show as non-logged in initial for a while then turn into real logged in state This approach can fit into my project, thx for your help
14 replies
BABetter Auth
Created by JWW on 3/27/2025 in #help
SignOut function doesn't immediately re-invoke session change
I used the router.refresh or redirect, but it still didn't reflect immediate change in my user-dropdown.tsx Here's some reference files: user-dropdown.tsx
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { currentUser } from "@/lib/auth";

import {
BoltIcon,
BookOpenIcon,
ChevronDownIcon,
Layers2Icon,
LogOutIcon,
PinIcon,
UserPenIcon,
UserRound,
} from "lucide-react";
import Link from "next/link";

export const UserDropdown = async () => {
const user = await currentUser();


if (!user)
return (...);

return (...);
};
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { currentUser } from "@/lib/auth";

import {
BoltIcon,
BookOpenIcon,
ChevronDownIcon,
Layers2Icon,
LogOutIcon,
PinIcon,
UserPenIcon,
UserRound,
} from "lucide-react";
import Link from "next/link";

export const UserDropdown = async () => {
const user = await currentUser();


if (!user)
return (...);

return (...);
};
auth.ts
import { headers } from "next/headers";
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";

import { db } from "@/db";
import { env } from "@/env";
import { user, account, session, verification } from "@/db/schema/user";

export const auth = betterAuth({
database: drizzleAdapter(db, {
provider: "pg",
schema: {
user: user,
account: account,
session: session,
verification: verification,
},
}),
socialProviders: {
google: {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET,
},
},
});

export const currentUser = async () => {
const session = await auth.api.getSession({
headers: await headers(),
});

return session?.user;
};
import { headers } from "next/headers";
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";

import { db } from "@/db";
import { env } from "@/env";
import { user, account, session, verification } from "@/db/schema/user";

export const auth = betterAuth({
database: drizzleAdapter(db, {
provider: "pg",
schema: {
user: user,
account: account,
session: session,
verification: verification,
},
}),
socialProviders: {
google: {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET,
},
},
});

export const currentUser = async () => {
const session = await auth.api.getSession({
headers: await headers(),
});

return session?.user;
};
14 replies
DTDrizzle Team
Created by JWW on 12/10/2023 in #help
push command didn't update schema to my database (truso)
Ok I try to give deadline a default value but then error happened: SQLite error: table tasks has 9 columns but 8 values were supplied
3 replies