拓扑森林
首页OPC课程政企培训专属智能体项目投融资行业资讯站内论坛关于我们
登录
跳到主内容
    论坛/求助问答

    Auth.js credentials 登录返回 null

    拾光者·2025/02/12 10:30:47·0 浏览
    站内论坛
    教程论坛排行榜徽章
    拾光
    拾光者楼主
    2025/02/12 10:30:47
    Vercel Edge Runtime 不支持 Prisma,因为 Prisma 依赖 Node.js 原生模块。Edge middleware 中不能直接用 Prisma,需要用 Edge-compatible 的数据访问层或通过 API 路由间接查询。
    
    router.push 不更新 URL,Next.js 15 + next-intl 在 useSession 触发 re-render 时可能取消 router.push 的 startTransition。解决:用 window.location.href 硬导航(认证流程的例外允许裸路径)。
    
    Server Action 提交后不跳转,可能是用了 router.push 而非 window.location.href。Next.js 15 + next-intl 的 router.push 在 startTransition 内会被 toast 的状态更新中断。解决:用 window.location.href 硬导航。
    
    Prisma 乐观锁并发更新冲突,用 $executeRaw 原子更新:UPDATE table SET count = count + 1 WHERE id = $1 AND count < $limit。配合 FOR UPDATE 行锁防并发竞争。
    查看历史

    5 回复

    1. 键盘
      键盘敲击者第 2 楼2025/03/10 13:43:52
      结合我最近的项目经验:Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。欢迎私信深入交流。
    2. 思考
      思考的柴犬第 3 楼2025/04/05 22:18:24
      说说我自己的经历:Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。效果因项目而异,建议实际测试。
    3. 刚刚
      刚刚好第 4 楼2025/09/20 02:25:54
      我之前也遇到过类似问题,useSession() 返回 null 检查 SessionProvider 是否包裹了组件。实践出真知,建议动手试试。
    4. 近水
      近水含烟第 5 楼2026/06/08 20:13:48
      这个方案我试过,cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。期待更多实战经验分享。
    5. 深夜
      深夜码农第 6 楼2026/06/28 12:04:57
      我的踩坑经验:hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。欢迎大家补充。
    登录后可回复
    拾光

    拾光者

    楼主个人主页

    帖子信息

    5 回复
    0 浏览
    12 赞
    0 收藏
    回复