ASP.NET Core(.NET8)用Google API传YouTube视频遇重定向URI不匹配错误
解决ASP.NET Core(.NET 8)YouTube OAuth 2.0重定向URI不匹配问题
重定向URI不匹配是Google OAuth 2.0授权的高频问题,核心原因是代码配置的回调地址与Google Cloud Console中注册的地址完全不一致。以下是针对性的排查和解决步骤:
1. 校验Google Cloud Console中的重定向URI配置
- 登录Google Cloud Console,进入目标项目,导航至API和服务 > 凭据
- 找到创建的OAuth 2.0客户端ID(类型需为"Web应用")
- 在"已授权的重定向URI"列表中,确保包含项目实际使用的完整回调地址:
- 本地开发场景:若项目运行在
http://localhost:5000,需添加http://localhost:5000/signin-google(ASP.NET Core Google OAuth默认回调路径为/signin-google) - 生产环境:替换为你的域名+回调路径,比如
https://yourdomain.com/signin-google
- 本地开发场景:若项目运行在
- 注意:必须严格匹配协议(HTTP/HTTPS)、端口、路径,不能有多余斜杠或空格
2. 核对ASP.NET Core项目中的配置
- 检查
appsettings.json或相关配置文件的Google OAuth参数,确保无拼写错误 - 确认代码中配置Google认证时的
CallbackPath与Console中的路径一致,示例代码:builder.Services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme; }) .AddCookie() .AddGoogle(options => { options.ClientId = builder.Configuration["GoogleAuth:ClientId"]; options.ClientSecret = builder.Configuration["GoogleAuth:ClientSecret"]; // 此处的CallbackPath必须和Google Console中注册的URI后缀完全一致 options.CallbackPath = new PathString("/signin-google"); }); - 检查
launchSettings.json中的applicationUrl,确保端口、协议与Console中注册的URI匹配,比如:
则需在Console中同时添加"applicationUrl": "http://localhost:5000;https://localhost:5001"http://localhost:5000/signin-google和https://localhost:5001/signin-google(若两种协议均使用)
3. 额外验证点
- 清除浏览器缓存和Cookie,避免旧授权会话干扰
- 若使用反向代理或负载均衡,确保转发的请求头包含正确的原始URI,否则ASP.NET Core生成的回调地址可能与实际不符
- 上传私密视频时,确保请求YouTube Data API的Scope包含
https://www.googleapis.com/auth/youtube.upload,并在视频元数据中设置status.privacyStatus = "private"
内容的提问来源于stack exchange,提问作者Venkatesh Pudi
相关产品推荐
相关产品推荐

