1

我正在尝试使用谷歌登录到我的网站。用户可以在 3 个域中访问我的网站

1) 常规链接(HTTP 和 WWW...) 2) http://example.com - 没有 www 3) apps.facebook.com/example - facebook 应用

我们希望允许用户在这三个选项中连接谷歌。

我们正在使用 gapi(谷歌 javascript 库)来验证用户身份。我的代码如下所示:

   var config = {
        'client_id': 'my_client_id',
        'scope': 'my_scopes',
        **'redirect_uri' : "https://www.example.com/oauth/",**
        'immediate': immediate
    };
    **gapi.auth.authorize(config, function(){});**

如您所见,我将重定向 uri 设置为 gapi 配置的一部分。我们创建了一些弹出窗口,以便为三个域提供相同的 uri。

我的问题是,如果我在没有 WWW 的情况下从域登录到我的站点,则授权不起作用并且用户没有重定向到 redirect_uri 链接——这意味着,我们没有他的令牌。

如果我要删除 redirect_uri 中的 WWW(所以它看起来像https://example.com/oauth/),facebook 域无法正常工作......

太沮丧了..有人熟悉这种问题吗?任何想法?

我们在这上面花了太多时间......

谢谢Z

4

1 回答 1

1

您可以在 Google API 控制台中为单个客户端注册多个重定向 URI,以便为每个域注册一个,并redirect_uri在授权请求的参数中为当前访问的域传递一个。您不需要在您的域中使用相同的重定向 URI,这样应该可以解决您的状态/令牌恢复问题。在此处输入图像描述

于 2014-12-29T17:35:49.093 回答