Google API:授权的JavaScript起源
Google API: Authorized JavaScript Origins
我正在为我们的web服务实现Google+登录,并偶然发现了"授权JavaScript起源"。我们的客户有网址作为我们的主域名的子域名,或作为自定义域名。由于登录页面在该子域(或自定义域)下,为了使Google+ singin按钮工作,该自定义域/子域应该(手动)在"授权JavaScript起源"列表中输入(包括http和https)。
有没有人知道一种方法来自动做到这一点(通过一些API也许)?如果不是,那么你怎么做呢?
不确定是否有API。乍一看,我没有看到。另一种选择(除了一直手动添加域之外)是在每个站点上使用一个隐藏的iframe -这个iframe将来自您的域,并且将是唯一调用google服务的东西。主要站点将与iframe (postMessage)通信,告诉它要向google发送什么。当然,这会带来安全风险(任何人都可以将您的iframe加载到他们的页面并代表您做坏事),所以您要确保iframe代码拒绝做任何事情,除非它在已知良好域的页面中运行。
你也可以有一个共同的URL,所有的子域名指向当尝试登录与谷歌。然后将此URL重定向到您实际的Google登录路径。
最后我让它工作,但是可能有一些修复应用。
所以一个服务器是主机的许多域名和子域名(子),他们都需要谷歌登录,有一个主域(父)。
我在父上实现了一个通用登录页面,子通过window.open()
作为弹出窗口打开此页面。由于客户端处于弹出窗口,auth2
很可能无法打开另一个弹出窗口,因此父将使用{ux_mode: 'redirect'}
参数作为gapi.auth2.SignInOptions
进行google验证。
进程将继续到您作为另一个gapi.auth2.SignInOptions
参数提供的回调页面,该参数为redirect_uri
,并且位于父上。
id_token
,您必须在您的服务器上验证这个令牌。这是主要的转折,你应该使用这些信息在服务器上创建一个令牌,父请求服务器创建,但将其发送给客户端的子(例如通过查询参数)以供以后使用。
我很乐意接受任何关于安全漏洞的建议或任何可能使过程稍微简化的评论。
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 在JavaScript中查找自己的起源
- 如何跟踪一个javascript行为的起源,特别是-添加哈希到我的url
- Google API:授权的JavaScript起源
- Javascript, Chrome扩展开发,XMLHttpRequest访问-控制-允许-起源问题
- 我怎么能找到一个Javascript事件的起源,这是程序化触发
- Tomcat”;访问控制允许起源”;和JavaScript