You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Credentials provider时Next-auth登录卡在/api/auth/providers如何解决

Next-auth signIn 卡住不执行authorize修复方案
  • 补全缺失的NextAuth导入
    你的/pages/api/auth/[...nextauth].js首行未导入NextAuth对象,直接调用NextAuth()会触发服务端运行异常,导致请求无限挂起,在文件开头添加导入语句:
import NextAuth from 'next-auth'
  • 修正字段拼写错误
    authorize方法中获取密码的字段名拼写错误,你写的credentials.passowrd属于拼写错误,正确写法为credentials.password,该错误会导致密码校验逻辑完全失效。
  • 修复未定义变量报错
    代码中调用的client.close()的client变量未做任何声明和赋值,运行时会抛出ReferenceError,请调整为接收connectDB()返回的连接实例,若你的数据库连接是全局复用不需要手动关闭,直接删除两处client.close()代码即可。
  • 修正逻辑运算符错误
    用户存在判断的条件使用了按位与符号&,需要替换为逻辑与符号&&:
if (user && (await user.matchPassword(credentials.password)))
  • 适配NextAuth v4版本配置(如果你使用的是v4版本)
    v4版本已废弃原有v3的配置语法,需要做如下调整:
    • 调整导入语句:
    import NextAuth from 'next-auth'
    import CredentialsProvider from 'next-auth/providers/credentials'
    
    • 调整session配置:
    session: {
      strategy: 'jwt'
    }
    
    • 提供者声明改为直接调用CredentialsProvider({}),不需要再从Providers对象下取。

完成以上修改后,authorize方法就会正常执行,signIn请求也不会再卡在/api/auth/providers接口。

内容的提问来源于stack exchange,提问作者asobirov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:45:03