Google OAUTH:请求中的重定向URI与注册的重定向URI不匹配
我试图从基于Java的网络应用程序上传到YouTube,花了几天的时间来了解问题所在和出处,但我无法解决,因为现在我将头发拔掉了。
我在Google控制台中注册了Web应用程序,因此获得了一对Client ID和Secret,并可以通过配置下载JSON类型文件。
所以这是配置:
{ "web":{
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"client_secret":"***",
"token_uri":"https://accounts.google.com/o/oauth2/token",
"client_email":"***",
"redirect_uris":["http://localhost:8080/WEBAPP/youtube-callback.html","http://www.WEBAPP.md/youtube-callback.html"],
"client_x509_cert_url":"***",
"client_id":"***",
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
"javascript_origins":["http://www.WEBAPP.md/"]
}
}
我如何从Google获取默认URL?
The redirect URI in the request: http://localhost:8080/Callback did not match
a registered redirect URI
它总是给我默认的http://localhost:8080/Callback
URL,而不是我的。
IDE控制台向我显示:
Please open the following address in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=***&redirect_uri=http://localhost:8080/Callback&response_type=code&scope=https://www.googleapis.com/auth/youtube.upload
Attempting to open that address in the default browser now...
我正在使用最新版本的依赖项: google-api-services-youtube v3-rev99-1.17.0-rc 和 google-api-
services-youtubeAnalytics v1-rev35-1.17.0-rc
回答:
当您的浏览器将用户重定向到Google的oAuth页面时,您是否要通过令牌响应将您希望Google服务器返回的重定向URI作为参数传递?在控制台中设置重定向URI并不是一种告诉Google尝试登录时该去哪里的方法,而是一种告诉Google允许的重定向URI是什么的方法(因此,如果其他人与您的客户端一起编写了一个Web应用,
ID,但不允许使用其他重定向URI);您的Web应用程序应在有人单击“登录”按钮时将浏览器发送至:
https://accounts.google.com/o/oauth2/auth?client_id=XXXXX&redirect_uri=http://localhost:8080/WEBAPP/youtube-callback.html&response_type=code&scope=https://www.googleapis.com/auth/youtube.upload
(作为参数传递的回调URI必须经过url编码,顺便说一句)。
当Google的服务器获得用户的授权后,它将把浏览器重定向到您以身份发送的任何内容redirect_uri
。它将在请求中包含令牌作为参数,因此您的回调页面可以随后验证令牌,获取访问令牌,然后继续进行应用的其他部分。
如果您访问:
http://code.google.com/p/google-api-java-
client/wiki/OAuth2#Authorization_Code_Flow
您可以在那里看到更好的Java客户端示例,这表明您必须重写getRedirectUri
方法以指定回调路径,因此不使用默认值。
重定向URIs存在于client_secrets.json
文件中的原因有很多……其中一个重要原因是,oAuth流可以验证您的应用程序指定的重定向是否与您的应用程序所允许的匹配。
如果您访问https://developers.google.com/api-client-
library/java/apis/youtube/v3,则可以直接基于控制台中的应用为自己生成示例应用,在该应用中(再次)
getRedirectUri方法被覆盖以使用您的特定回调。
以上是 Google OAUTH:请求中的重定向URI与注册的重定向URI不匹配 的全部内容, 来源链接: utcz.com/qa/401868.html