Lam*_*bda 23 google-api socialauth url-redirection google-oauth social-authentication
我正在尝试localhost:8080
使用Social Auth for Java 在我的计算机(at )上运行的玩具应用程序中使用Google OAuth 2身份验证.
但是,当我的应用连接到Google以对用户进行身份验证时,Google会回复此错误页面:
我的应用程序名为"我的爱好应用程序",在开发者控制台中配置如下:
在Google OAuth 2文档中,指定了:
redirect_uri:开发人员控制台中为此项目列出的redirect_uri值之一.
确定响应的发送位置.此参数的值必须与Google Developers Console中为此项目列出的值之一完全匹配(包括http或https方案,大小写和尾随'/').
我有一些问题:
redirect_uri
在我的应用中添加多个?CMP*_*res 33
它实际上比你想象的要容易,不幸的是我花了几个小时来搞清楚.
通常情况下,当您在Google或其他地方添加多个链接时,您可以通过,
或者;
使用重定向URI 将其分开,您必须使用新行,这实际上并不是非常直观.因此,当您按下Edit Settings
按钮时,如果您有更多链接,则可以添加到URI和/或Origins,由换行符分隔(enter
).
无需复杂的应用程序配置或新密钥.
关于你的第二个问题:你必须去"同意屏幕"选项卡更改您的应用程序信息,如你的PRODUCT NAME
,HOMEPAGE
,LOGO
,等.
这个答案可能不是问题的确切答案,但我认为这可能会帮助那些第一次使用 Google OAuth 并且想知道为什么他们的多个 URI 未被识别的人。
我们在代码中的 2 个地方使用了重定向 URI。第一次是在获取身份验证代码时,第二次是在将此代码交换为访问令牌时。
在Google docs 中,明确提到对验证码请求(第一个请求)的响应将发送到重定向 URI。因此,如果您从端点 A 发出请求并将重定向 URI 指定为端点 B,Google 会将验证代码发送到端点 B。这很清楚并且工作正常,没有任何错误。
谈到第二个请求,文档有点模棱两可。redirect_URI 参数说明如下:
redirect_uri:您在 API 控制台中指定的 URI,如设置重定向 URI 中所述。
这是我在理解其工作原理时犯的错误。按照与第一次调用类似的方法,我使用了第三个端点 C,并在进行第二次调用时在 redirect_URI 参数中传递了这个端点 C。尽管在 API 控制台中指定了端点 B 和 C,但我收到了 URI 不匹配错误。
问题在于,与第一次调用的情况不同,第二次调用的响应来自发出请求的同一端点。我在 python 中提出了一个请求,如下所示:
r = requests.post(token_endpoint, params)
Run Code Online (Sandbox Code Playgroud)
r
有带有令牌的响应。
我的 URI 不匹配,因为我应该在两个调用中使用相同的 redirect_URI。
因此,对于单个 OAuth 请求,我们需要使用单个 redirect_URI。
但是,随之而来的问题是,为什么在 API 控制台中允许单个应用程序使用多个 redirect_URI。我假设如果我们需要在同一个应用程序中进行多对 authCode-token 调用,我们有使用多个 redirect_URI 的余地。
归档时间: |
|
查看次数: |
15193 次 |
最近记录: |