Next.js 具有自定义凭据提供程序的下一个会话未创建会话

Next.js 具有自定义凭据提供程序的下一个会话未创建会话,next.js,next-auth,Next.js,Next Auth,我正在尝试在我的NextJs应用程序中实现NextAuth。我正在关注官方文件。但出于这样或那样的原因,用户会话对象似乎不是在登录时生成的 这是我的页面/api/auth/[…nextauth].js文件中的代码 从“下一次身份验证”导入下一次身份验证; 从“下一个身份验证/提供程序”导入提供程序; 从“axios”导入axios; 导出默认值(请求、恢复)=> 下一步(要求、决议、{ 供应商:[ 提供者。凭据({ id:'应用程序登录', 名称:应用 授权:异步(凭据)=>{ 日志(“凭证:

我正在尝试在我的NextJs应用程序中实现NextAuth。我正在关注官方文件。但出于这样或那样的原因,用户会话对象似乎不是在登录时生成的

这是我的页面/api/auth/[…nextauth].js文件中的代码

从“下一次身份验证”导入下一次身份验证;
从“下一个身份验证/提供程序”导入提供程序;
从“axios”导入axios;
导出默认值(请求、恢复)=>
下一步(要求、决议、{
供应商:[
提供者。凭据({
id:'应用程序登录',
名称:应用
授权:异步(凭据)=>{
日志(“凭证:”,凭证);
试一试{
常数数据={
用户名:credentials.username,
密码:credentials.password
}
//与身份验证关联的API调用
//从提供的凭据中查找用户
const user=等待登录(数据);
如果(用户){
//返回的任何对象都将保存在JWT的“user”属性中
返回承诺。解析(用户);
}
}捕获(错误){
if(error.response){
console.log(error.response);
拒绝(新错误(“无效的用户名和密码组合”);
}
}
},
}),
],
网址:process.env.nextuth|URL |”http://localhost:3000",
会议:{
//对会话而不是数据库会话使用JSON Web令牌。
//此选项可以与用户/帐户数据库一起使用,也可以不与用户/帐户数据库一起使用。
//注意:如果未指定数据库,“jwt”将自动设置为“true”。
jwt:没错,
//秒-空闲会话过期且不再有效的时间。
最大年龄:1*3*60*60,//3小时
//秒-限制写入数据库以扩展会话的频率。
//使用它可以限制写入操作。设置为0可始终更新数据库。
//注意:如果使用JSON Web令牌,则忽略此选项
更新日期:24*60*60,//24小时
},
回调:{
//signIn:async(用户、帐户、配置文件)=>{return Promise.resolve(true)},
//重定向:async(url,baseUrl)=>{return Promise.resolve(baseUrl)},
//会话:异步(会话,用户)=>{return Promise.resolve(会话)},
//jwt:async(令牌、用户、帐户、配置文件、isNewUser)=>{return Promise.resolve(令牌)}
},
页码:{
签名:'/auth/credentials sign',
注销:'/auth/credentials signin?logout=true',
错误:'/auth/credentials signin',//查询字符串中传递的错误代码为?错误=
新用户:'/'
},
调试:process.env.NODE_env==“开发”,
机密:process.env.NEXT\u PUBLIC\u AUTH\u secret,
jwt:{
秘密:process.env.NEXT\u PUBLIC\u JWT\u secret,
}
});
常量登录=异步数据=>{
变量配置={
标题:{
“内容类型”:“应用程序/json;字符集=utf-8”,
“corsOrigin”:“*”,
“访问控制允许来源”:“*”
}
};
const url=远程用户url;
const result=wait axios.post(url、数据、配置);
console.log('result',result);
返回结果;

};我最终设法解决了这个问题。由于为自定义凭据提供程序指定了“id”和“name”选项,出现了错误

我已经删除了它们,代码正在运行