Back

NextJS SSR Auth No Session

  • 0
  • Self Hosted
  • Auth
  • Web
Suiii
30 May, 2024, 02:29

this is my login action

TypeScript
export async function signInUser(
  data: LoginSchema
): Promise<ActionResult<string>> {
  try {
    const { email, password } = data
    const { account } = await createAdminClient();
    const session = await account.createEmailPasswordSession(email, password);

    cookies().set("appwrite-session", session.secret, {
      path: "/",
      httpOnly: false,
      sameSite: "strict",
      secure: false,
    });

    return { status: 'success', data: 'Logged in' }

  } catch (error) {
    console.log(error);
    return { status: 'error', error: 'Something else went wrong' }
  }
}

Get user login session

TypeScript

export async function getLoggedInUser() {
  try {
    const { account } = await createSessionClient();
    return await account.get();
  } catch (error) {
    return null;
  }
}

See session in appwrite console

also see cookie but no data

TL;DR
Developers are trying to implement server-side rendering (SSR) authentication in NextJS using the "node-appwrite" library. They are facing issues with the login session and retrieving the logged-in user. The login action successfully sets the session cookie but is unable to retrieve the user session and data. They can see the session in Appwrite console but not in the cookie. Solution: Developers can check the session creation and retrieval logic to ensure the proper handling of sessions and cookies. They may need to troubleshoot the session creation steps to ensure the session data is being properly stored and retrieved. Additionally, verifying the session handling settings such as
Suiii
30 May, 2024, 02:30
Suiii
30 May, 2024, 02:34

console.log on login

Suiii
30 May, 2024, 02:54

"node-appwrite": "^12.1.0-rc.4"

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more