[我正在使用 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) 我正在使用Next.js (11.1.2) + NextAuth (^4.0.5) + Strapi(3.6.8)进行项目。
我正在使用 Next Auth 凭据提供程序,它工作正常。但我需要使用 访问一些用户信息session,因此我尝试使用jwt和session回调来执行此操作。
当我在内部记录来自 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)