我正在使用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);
});
});
}
});发布于 2013-10-05 06:12:34
万岁,有用而又不必要的变通方法(感谢你把自己复杂化到谷歌的角落)……
我使用Google Drive,使用javascript api打开文件选择器,检索文件info/url,然后使用curl将其下载到我的服务器上。当我最终意识到我所有的通配符域都必须注册时,我几乎要中风了。
我现在要做的是(这是我的用例,如果你需要的话,可以根据你的情况来选择)
在您所在的页面上,创建一个onclick事件来打开一个特定域中的新窗口(https://googledrive.example.com/oauth/index.php?unique_token={some unique token}).
这显然不是处理这个问题的最好方法,但它比进入googles云控制台的每个子域都要好。我打赌你可以用google服务器端的oauth库来做到这一点,但我的用例有点复杂,我很暴躁,因为在过去的4天里,我花在与谷歌的一个愚蠢的小集成上感到沮丧。
发布于 2013-09-17 04:59:49
不支持通配符来源,重定向URI也是如此。
可以注册通配符源的事实是一个错误。
您可以使用state参数,但要非常小心,确保不会创建开放重定向器(可以重定向到任意URL的端点)。
https://stackoverflow.com/questions/18744888
复制相似问题