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

Next Auth+Prisma Adapter+PlanetScale Google登录失败求助

解决NextAuth Google Provider + Prisma Adapter + PlanetScale登录错误

问题根源

错误提示「The provided value for the column is too long for the column's type」以及前端的「Try signing in with a different account」,本质是MySQL默认的varchar(191)长度不足以容纳Google OAuth返回的token类字段,而你的Prisma Schema中仅用注释标注了@db.Text,并未实际启用该属性,导致插入Account记录时字段长度溢出。

解决方案

1. 修改Prisma Schema中的Account模型

将refresh_token、access_token、id_token字段的注释去掉,添加@db.Text属性,让这些字段使用MySQL的TEXT类型(无长度限制):

model Account {
    id                String  @id @default(cuid())
    userId            String
    type              String
    provider          String
    providerAccountId String
    refresh_token     String? @db.Text // 启用TEXT类型存储长token
    access_token      String? @db.Text // 启用TEXT类型存储长token
    expires_at        Int?
    token_type        String?
    scope             String?
    id_token          String? @db.Text // 启用TEXT类型存储长token
    session_state     String?
    user              User    @relation(fields: [userId], references: [id], onDelete: Cascade)

    @@unique([provider, providerAccountId])
    @@index([userId])
}

2. 更新数据库与Prisma客户端

执行以下命令同步数据库变更并重新生成Prisma客户端:

npx prisma generate
npx prisma db push

额外检查项

  • 确认DATABASE_URL环境变量正确指向PlanetScale数据库
  • 检查Google云平台上的OAuth客户端ID/密钥是否与env中的配置完全匹配
  • 如果问题仍存在,可尝试将providerAccountId也改为@db.Text(部分Google账户的ID可能超出varchar长度限制)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:25:28