gpt4 book ai didi

javascript - Google OAuth 通配符域

转载 作者:行者123 更新时间:2023-11-29 10:17:28 26 4
gpt4 key购买 nike

我正在使用 google 身份验证,但一直出现来源不匹配的情况。我正在工作的项目具有由用户生成的子域。所以例如可以有:

john.example.com
henry.example.com
larry.example.com

在我的应用程序设置中,我的来源之一是 http://*.example.com,但我发现来源不匹配。有办法解决这个问题吗?顺便说一句,我的代码看起来像这样:

 gapi.auth.authorize({
client_id : 'xxxxx.apps.googleusercontent.com',
scope : ['https://www.googleapis.com/auth/plus.me',
state: 'http://henry.example.com',
'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile'],
immediate : false
}, function(result) {

if (result != null) {
gapi.client.load('oath2', 'v2', function() {
console.log(gapi.client);
gapi.client.oauth2.userinfo.get().execute(function(resp) {
console.log(resp);
});
});




}
});

最佳答案

为有用但不必要的解决方法万岁(感谢谷歌让自己陷入困境)......

我使用 Google Drive 使用 javascript api 打开文件选择器,检索文件信息/url,然后使用 curl 将其下载到我的服务器。当我终于意识到我所有的通配符域都必须注册时,我差点中风。

我现在做的是以下(这是我的用例,根据需要满足您的需求)

  1. 在您所在的页面上,创建一个 onclick 事件以在特定域中打开一个新窗口 (https://googledrive.example.com/oauth/index.php?unique_token= {一些独特的 token })。

  2. 在新的弹出窗口中,我完成了我所有的 google 驱动器身份验证,点击一个按钮打开了文件选择器,然后至少从文件中检索了我需要的元数据。然后我将 token (主键)、access_token、downloadurl 和文件名存储在我的数据库 (MySQL) 中。

  3. 回到第一步的页面,我创建了一个 setTimeout() 循环,该循环每秒使用相同的 unique_token 运行一次 ajax 调用,以检查它何时被输入到数据库中。找到它后,我终止循环,然后检索内容并按我的意愿处理它们(在这种情况下,我通过使用 curl 获取文件的单独上传脚本上传它们)。

这显然不是处理此问题的最佳方法,但它比将每个子域输入谷歌云控制台要好。我打赌你可能可以用他们使用的谷歌服务器端 oauth 库来做到这一点,但我的用例有点复杂而且我很暴躁,因为在过去的 4 天里我很沮丧我花了一些时间与谷歌进行愚蠢的小集成。

关于javascript - Google OAuth 通配符域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com