2016-12-06 21 views
2

我正在使用Auth0在Google Ionic应用程序中使用Google实现社交登录。在弹出模式下使用Auth0锁

我已经设置redirect选项等于false根据documentation这打开了一个新标签。

现在,当我设置redirect等于true(默认),则按照文件应该显示在弹出的登录窗口,但我收到以下错误:

Refused to display ' https://accounts.google.com/AccountChooser?continue=https://accounts.google ….com%26from_login%3D1%26as%3D-13354ff19852788a&btmpl=authsub&scc=1&oauth=1' in a frame because it set 'X-Frame-Options' to 'DENY'

我知道,因为我试图在localhost里面打开这个,这就是我得到这个错误的原因。但是我怎样才能在我的本地环境中测试这个功能呢?

回答

1

根据​​如果将redirect选项设置为false(覆盖默认值true)将触发使用弹出窗口模式。

redirect - Defaults to true. When set to true, redirect mode will be used. If set to false, popup mode is chosen.

Use of the popup mode可以导致新的标签页或窗口,而使用默认重定向模式使用当前窗口重定向到身份提供者被打开。

使用redirect=true时获得的错误似乎表明您在应用程序中使用了iframe,并且您尝试从iframe内执行身份验证。谷歌身份提供商不支持谷歌在回应中暗示的X-Frame-Options: DENY。 (这个头文件要求浏览器在iframe内导航失败)

总之,这个错误不是由Lock直接引起的。

+0

我不想使用应用内浏览器向用户显示登录窗口。我想要显示弹出窗口。我怎样才能实现这个功能比使用Auth0 –

+0

弹出模式的触发器是通过使用'redirect = false'来实现的。正如文档中所述,这可能导致打开**新标签**或**窗口**;你的问题是,它打开一个新的标签,而不是一个窗口? –

+0

实际上它打开了一个新标签,我希望它在一个弹出窗口中打开。 –