MopsiorOriginal post
Web Developer
Hi, I have problem with auth. When I try to login/signup using OTP, at the end session.secret is empty, but looks like a whole procces passed correctly.
I have tried creating new API key (someone response from simillar post), but still don't work
Using Nextjs 14.2.8, node-appwrite 13
JavaScript
// app/signup/page.tsximport { createAdminClient, getLoggedInUser } from "@/lib/server/appwrite"import { cookies } from "next/headers"import { redirect } from "next/navigation"import { ID } from "node-appwrite"
export default async function SignupPage() { const user = await getLoggedInUser() if (user) redirect("/rooms")
return ( <> <form action={sendEmail}> <input type="email" name="email" placeholder="email@email.com" /> <button type="submit">Send Email</button> </form> <form action={login}> <input type="text" name="code" placeholder="code" /> <button type="submit">Submit code</button> </form> </> )}
const sendEmail = async (formData: FormData) => { 'use server' const email = formData.get('email') as string
const { account } = await createAdminClient()
const sessionToken = await account.createEmailToken( ID.unique(), email )
cookies().set('user-id', sessionToken.userId, { path: '/', })}
const login = async (formData: FormData) => { 'use server' const code = formData.get('code') as string
const { account } = await createAdminClient()
const userID = cookies().get('user-id')?.value
const session = await account.createSession( userID as string, code ) console.log(session, session.secret)
cookies().set('user-session', session.secret, { path: '/', sameSite: 'lax', })
redirect('/rooms')}```Summary
Developers are experiencing an issue where the session.secret is empty after the authentication process with OTP in Nextjs 14.2.8 and node-appwrite 13. Creating a new API key did not resolve the problem.
Solution:
The code needs to populate the session.secret correctly after creating a session with OTP verification.