从Google Developer Console页面,它解释了" Google Redirect URI"是:
确定响应的发送位置。此参数的值 必须与API控制台中注册的值之一完全匹配 (包括http或https计划,案例和尾随' /')。
不确定,这个解释是否与我的想法相同:
在我的应用程序(网络应用程序)上,它允许用户通过Google登录(假设,我在我的网络应用程序上注册了配置了ClientID / secrete的Google项目,并且在Google COnsole页面上,redirectURI是&#34 ; http://bbc.co.uk")。
通过我的Google帐户成功登录Google后,我的网络应用登录页面将被重定向到" http://bbc.co.uk"与Google RedirectURI一样?
答案 0 :(得分:1)
最后一句话有点含糊不清。更好的描述是:
使用Google成功登录Google帐户后 凭据,Google会将我的浏览器重定向回 在Google中为Web应用注册的重定向URI
http://bbc.co.uk
> API控制台。
只是为了确定:这意味着重定向URI应该是您的Web应用程序的一部分。它实际上不是Google的重定向URI,而是您在Google API控制台中为您的网络应用配置的重定向URI。
答案 1 :(得分:1)
我认为措辞"确定响应的发送位置"让很多初学者感到困惑,因为它暗示谷歌会以某种方式直接调用该URL。然后单词"重定向"导致人们将网址与用户在进行身份验证后访问的应用页面混淆。
http://bbc.co.uk绝对不是重定向网址。重定向网址通常看起来像https://myapp.com/servlet_or_php_that_i_wrote_to_process_tokens.php
谷歌将会打电话给#34; servlet_or_php_that_i_wrote_to_process_tokens.php通过将浏览器重定向到它。一旦servlet_or_php_that_i_wrote_to_process_tokens.php完成令牌所需的任何操作,它就会发出自己的重定向到(比方说)bbc.co.uk
答案 2 :(得分:0)
让我看看我是否能以不同的方式解释这一点。
如果您没有重定向URI,会发生什么?
如果您转到开发人员控制台并默认创建Client ID for native application
重定向URI
这会将身份验证重定向回到请求的位置。对于本机安装的应用程序,这是必需的,因为无法知道用户在哪里安装了应用程序。
让我们看看这个
请求身份验证:
https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code
如果您将上述行放在网络浏览器中,用户将会看到类似这样的内容
假设他们选择了ok,那么他们会将它显示回来。
这是身份验证代码,不要与访问令牌混淆。这只是第一步。一旦您的应用程序具有身份验证代码,它就可以将其交换为刷新令牌和访问令牌。大多数客户端库在内部处理此步骤。您和您的用户永远不会看到此身份验证代码。
返回重定向URI:
如果Web应用程序需要能够获取该身份验证代码的Web应用程序。现在我可能不应该告诉你这个,但你可以在你的web应用程序中使用本机应用程序客户端,它会起作用。为什么,因为身份验证服务器只会将身份验证代码返回到请求它的位置。出于安全考虑,这可能是一种不好的做法。
那么你需要在重定向uri中放置什么。您已准备好处理此身份验证代码的文件。通常它与登录页面相同,但您可以有几个。只需将它们分别放在不同的行上。
http://localhost/login.php
http://www.daimto.com/login.php
我喜欢这样做,因为当我在本地进行测试时,它会在服务器上运行时运行。