#jwt #next.js #strapi #next-auth
#jwt #next.js #страпи #далее-auth
Вопрос:
[Я использую Next.js (11.1.2) NextAuth (4.0.0-beta.7) для входа в API Strapi, используя только поставщик учетных данных (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 amp;amp; user) {
return user
}
return null
}
})
],
session: {
strategy: "jwt",
maxAge: 30 * 24 * 60 * 60 // 30 days
},
pages: {
signIn: '/signin',
signOut: '/signin',
error: '/signin'
},
})
Но через несколько секунд после входа пользователя в систему терминал отображает это сообщение и прерывает сеанс:
[next-auth][warn][NO_SECRET] https://next-auth.js.org/warnings#no_secret
[next-auth][error][JWT_SESSION_ERROR] https://next-auth.js.org/errors#jwt_session_error decryption operation failed {
message: 'decryption operation failed',
stack: 'JWEDecryptionFailed: decryption operation failedn'
Итак, я попытался добавить:
secret: process.env.SECRET, //I've created using $ openssl rand -base64 32
Затем я получаю два разных сообщения
Консоль браузера:
[next-auth][error][CLIENT_FETCH_ERROR]
https://next-auth.js.org/errors#client_fetch_error
VS Code Terminal:
[next-auth][error][CALLBACK_CREDENTIALS_JWT_ERROR]
https://next-auth.js.org/errors#callback_credentials_jwt_error Signin in with credentials only supported if JWT strategy is enabled UnsupportedStrategy [UnsupportedStrategyError]: Signin in with credentials only supported if JWT strategy is enabled
Я попробовал пару разных вариантов, но это было так запутанно.
И теперь я понятия не имею, что делать. 🙁
Можете ли вы мне помочь?
Комментарии:
1. Возникает ли проблема после повторного развертывания вашего приложения?
2. Нет, я не могу развернуть прямо сейчас, я просто запускаю локально.
Ответ №1:
Я обновился до версии 4.0.1. Исправлена проблема.
Ответ №2:
Вероятно, это ошибка, представленная в бета-версии 7 next-auth, как обсуждалось в https://github.com/nextauthjs/next-auth/issues/3216
Комментарии:
1. Отлично! Спасибо, Дональд
Ответ №3:
Я не эксперт. Но я думаю, что это текущая проблема с библиотекой NEXT auth 4.0.0
Я мог бы решить проблему, используя версию «next-auth»: «^ 3.25.0». и последовал этому руководству