Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

371
Visualizações
¿Cómo puedo presionar nextauth para iniciar sesión con cartero?

Actualmente estoy tratando de crear una autenticación de usuario con NextAuth. Puedo usarlo dentro de mi aplicación web y no hay problema con eso. Pero ahora, estoy tratando de ingresar con el cartero. Entonces puedo compartir el punto final de inicio de sesión. Aquí está mi [...nextauth].js

 const configuration = { secret: process.env.NEXTAUTH_SECRET, cookie: { secure: process.env.NODE_ENV && process.env.NODE_ENV === 'production', }, session: { strategy: "jwt", maxAge: 30 * 24 * 60 * 60 }, providers: [ CredentialsProvider({ id: "credentials", name: "credentials", credentials: {}, page: "/", async authorize(credentials) { try { const user = await prisma.user.findFirst({ where: { email: credentials.email } }); if (user !== null) { const res = await confirmPasswordHash(credentials.password, user.password); if (res === true) { return user; } else { console.log("Hash not matched logging in"); return null; } } else { return null; } } catch (err) { console.log("Authorize error:", err); } } }), ], callbacks: { async session({ session, user, token }) { session.user = token.user; return session; }, async jwt({ token, user, account, profile, isNewUser }) { if (user) { token.user = user; } return token; }, } } export default (req, res) => NextAuth(req, res, configuration)

Cuando presiono a través del cartero, está devolviendo la vista HTML.

 { "email":"myemail@email.com", "password":"12345678" }

y los datos llegarán a http://localhost:3000/api/auth/signin

Cómo puedo lograrlo ? gracias de antemano

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No soy un usuario de Next.js o NextAuth, pero miro la página de inicio de sesión: https://github.com/nextauthjs/next-auth/blob/2469e44572f23f709fa8c5c65c6b7a4eb2383e9f/packages/next-auth/src/core/pages/ iniciar sesión.tsx

Podemos ver que los proveedores de tipo "credenciales" presentan un formulario que "POST" a la URL de "devolución de llamada".

 {provider.type === "credentials" && ( <form action={provider.callbackUrl} method="POST"> <input type="hidden" name="csrfToken" value={csrfToken} /> {Object.keys(provider.credentials).map((credential) => { return ( <div key={`input-group-${provider.id}`}> <label className="section-header" htmlFor={`input-${credential}-for-${provider.id}-provider`} > {provider.credentials[credential].label ?? credential} </label> <input name={credential} id={`input-${credential}-for-${provider.id}-provider`} type={provider.credentials[credential].type ?? "text"} placeholder={ provider.credentials[credential].placeholder ?? "" } {...provider.credentials[credential]} /> </div> ) })} <button type="submit">Sign in with {provider.name}</button> </form> )}

Se espera que ese formulario tenga un csrfToken que, si lo entiendo correctamente, puede obtenerlo de /api/auth/csrf ( https://next-auth.js.org/getting-started/rest-api#get- apiauthcsrf )

Debería poder inspeccionar la página representada para averiguar cuál es la URL de devolución de llamada para usted, presumiblemente /api/auth/signin/:provider pero con el proveedor real.

En cuanto al cartero (o su aplicación móvil), espero que todo lo que necesite hacer sea PUBLICAR en esa URL. Presumiblemente, el cuerpo de la solicitud deberá enviarse como application/x-www-form-urlencoded ya que el método es POST . Según lo que puedo entender de su pregunta, el formulario debe tener 3 campos simples, email , password y csrfToken , pero los nombres de los campos de email y password se formatearán como input-${credential}-for-${provider.id}-provider . Nuevamente, inspeccionar la página renderizada y la solicitud de red confirmará los valores correctos.

Ah, y perdón por todas las conjeturas. Esperemos que todavía haya algo útil allí.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda