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

使用strapi-google-auth在Strapi v4中实现谷歌认证遇400错误求助

Strapi v4 strapi-google-auth插件谷歌认证后请求JWT报400错误排查方案

针对你遇到的谷歌登录后请求JWT返回400(Error occured while fetching the user profile)的问题,按以下步骤排查:

1. 修正请求体格式

strapi-google-auth插件的接口通常不要求用data包裹参数,直接传递顶级的code字段即可。你的当前代码把code放在data对象里,这可能导致插件无法正确解析参数。修改代码如下:

const login = async () => {
  let authCode = queryString.parse(window.location.search)
  console.log(authCode.code)
  // 直接传递code字段,去掉外层data包裹
  let googleAuth = {
    code: authCode.code,
  }
  try {
    const res = await axios.post('http://127.0.0.1:1338/strapi-google-auth/user-profile', googleAuth)
    setJwt(res.data)
  } catch (err) {
    console.error('认证失败详情:', err.response?.data || err.message)
  }
}

2. 核对谷歌OAuth配置

  • 登录谷歌云控制台,进入你的OAuth 2.0客户端ID配置页,确认已授权的重定向URI完全匹配Strapi插件设置里的Callback URL(通常格式为http://127.0.0.1:1338/strapi-google-auth/callback,注意端口、域名必须和你的Strapi服务一致)。
  • 检查Strapi后台插件配置中的Client ID、Client Secret是否和谷歌云里的完全一致,避免拼写错误或多余空格。

3. 验证授权码有效性

谷歌返回的授权码(code)只能使用一次,且有短时间有效期。如果测试时重复使用同一个code,会触发无效授权错误。解决方法:

  • 清除浏览器缓存,重新发起谷歌登录流程,获取全新的code后再发送请求。

4. 检查插件与Strapi版本兼容性

确认你使用的strapi-google-auth插件版本支持当前的Strapi v4版本。部分插件对Strapi版本有严格要求,版本不匹配会导致内部逻辑报错。可以查看插件的GitHub仓库或npm页面的版本说明,确保两者兼容。

5. 开启Strapi调试日志定位细节

修改Strapi的config/server.js文件,将日志级别设为debug:

module.exports = ({ env }) => ({
  // ...其他配置
  logger: {
    level: 'debug',
  },
});

重启Strapi服务后,再次触发认证请求,查看控制台输出的详细日志,插件会打印谷歌API返回的具体错误信息(比如invalid_grant、invalid_client等),帮助精准定位问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:15:28