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

Spring Boot集成Google Drive API:OAuth重定向URI配置问题求助

解决Google Drive API生产环境HTTPS重定向URI配置问题

问题根源在于你创建的是桌面应用类型的OAuth 2.0 Client ID,这类凭据预绑定了localhost相关重定向地址,不支持自定义外部HTTPS域名的重定向配置——这就是你修改JSON或代码无效的核心原因。以下是具体解决步骤:

1. 替换凭据类型为Web应用

  • 打开Google Developer Console,进入你的项目
  • 导航到「API和服务」→「凭据」页面
  • 删除原有的桌面应用类型Client ID(或保留但不再使用)
  • 点击「创建凭据」→「OAuth客户端ID」
  • 应用类型选择Web应用
  • 在「已授权的重定向URI」栏添加你的生产环境HTTPS地址(例如https://your-production-domain.com/oauth2/callback),注意URI需完全匹配协议、域名和路径
  • 创建完成后下载新的JSON凭据文件,替换项目中原有的凭据文件

2. 调整Spring Boot代码中的重定向配置

确保代码中指定的重定向URI与控制台配置的完全一致,示例代码如下:

// 初始化授权流
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
        HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, Arrays.asList(DriveScopes.DRIVE_FILE))
        .setAccessType("offline")
        .setApprovalPrompt("force")
        .build();

// 指定生产环境重定向URI
String redirectUri = "https://your-production-domain.com/oauth2/callback";
String authorizationUrl = flow.newAuthorizationUrl()
        .setRedirectUri(redirectUri)
        .build();

同时确保回调接口的路径与配置的URI一致:

@GetMapping("/oauth2/callback")
public String handleOAuthCallback(@RequestParam("code") String authCode) throws IOException {
    // 处理授权码、获取访问令牌逻辑
    return "redirect:/drive-dashboard";
}

3. 验证OAuth同意屏幕配置

进入「OAuth同意屏幕」页面,确认「授权域名」已添加你的生产环境域名,避免出现域名不被信任的授权错误。

注意事项

  • 桌面应用类型凭据仅适用于本地调试场景,生产环境必须使用Web应用类型凭据
  • 重定向URI必须严格匹配,包括HTTPS协议、完整域名、路径,大小写和斜杠都不能出错
  • 如果使用Spring Security OAuth2自动配置,需在application.yml或application.properties中更新凭据信息和重定向URI配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:32:38