小编ped*_*nna的帖子

NextAuth.js:JWT 秘密破坏应用程序

[我正在使用 Next.js (11.1.2) + NextAuth (4.0.0-beta.7) 登录 Strapi API,仅使用凭证提供程序 (JWT)。]

整个身份验证流程正在“工作” [...nextauth].js

import NextAuth from "next-auth"
import CredentialsProvider from 'next-auth/providers/credentials'

export default NextAuth({
  providers: [
    CredentialsProvider({
      name: 'AppName',
      credentials: {
        email: {label: "Email", type: "text", placeholder: "daveglow@foomail.com"},
        password: {  label: "Password", type: "password" },
      },
      async authorize(credentials, req) {
        const res = await fetch(process.env.CREDENTIALS_AUTH_URL, {
          method: 'POST',
          body: JSON.stringify(credentials),
          headers: { "Content-Type": "application/json" }
        })
        const user = await res.json()

        if (res.ok && user) {
          return user
        }
        return …
Run Code Online (Sandbox Code Playgroud)

jwt strapi next.js next-auth

5
推荐指数
1
解决办法
1万
查看次数

NextAuth:JWT 回调返回对象

我正在使用Next.js (11.1.2) + NextAuth (^4.0.5) + Strapi(3.6.8)进行项目。

我正在使用 Next Auth 凭据提供程序,它工作正常。但我需要使用 访问一些用户信息session,因此我尝试使用jwtsession回调来执行此操作。

当我在内部记录来自 Strapi 的响应时authorize(),我收到了{ jwt:{}, user:{} },所以没问题。

//[...nextauth.js]

async authorize(credentials, req) {
        try {
          const { data } = await axios.post(process.env.CREDENTIALS_AUTH_URL, credentials)
          if (data) {
            //console.log('data: ', data) //this is ok
            return data;
          }
          else {
            return null;
          }
        } catch (e) {
          return null;
        }
},
Run Code Online (Sandbox Code Playgroud)

但是,在jwt回调中,当我登录时token,我得到一个奇怪的对象{token:{token:{token:{...}}}

// [...nextauth.js] callback:{ jwt: …
Run Code Online (Sandbox Code Playgroud)

javascript jwt strapi next.js next-auth

0
推荐指数
1
解决办法
8219
查看次数

标签 统计

jwt ×2

next-auth ×2

next.js ×2

strapi ×2

javascript ×1