【问题标题】:Hybrid Auth - "This page cannot be accessed directly" error混合身份验证 - “无法直接访问此页面”错误
【发布时间】:2013-12-05 08:29:41
【问题描述】:

谈到 Hybid Auth,我正在使用 Facebook 登录用户,但我不知道我在代码中修改了什么导致系统显示“抱歉,此页面无法直接访问”消息。

我发现它与 $_SESSION["HA::CONFIG"] 变量有关,当系统在文件 中检查 是否已经存在 Hybrid_Auth 会话 hybridauth/hybridauth/index.php

您能告诉我如何解决这个问题吗?

【问题讨论】:

  • 显然是因为它在 iframe 中。
  • 我也有一个 iframe 但删除了它,但仍然有同样的问题,只在 firefox 中

标签: facebook-graph-api hybridauthprovider


【解决方案1】:

我正在使用 HybridAuth 2.0.11 安装程序 当您通过 /hybridauth/install.php 安装 Hybrid Auth 时 确保 HybridAuth 端点 URL 包含格式中的 url http://domain.com 而非 http://www.domain.com 或其他一些子域 还要验证您的 facebook twitterlinkedin 开发者帐户中提到的 url 格式是否相同。

【讨论】:

  • 在您尝试在扳手上测试的页面网址中也包含 www。
  • 似乎有点不合逻辑.. 如果您只有 www 域怎么办?我曾经经历过这种情况..如果用户输入 www.domain.com 那它不起作用怎么办? :S
【解决方案2】:

我在尝试使用 Firefox 登录时遇到了这个问题,虽然 hybridauth 在所有浏览器上都运行良好,但在 Firefox 浏览器上却失败了。因此,如果您正在寻找

的答案
hybridauth firefox 您无法直接访问此页面
这是解决方案。

问题在于Firefox 具有页面重定向的缓存机制,您可以在此线程firefox-5-caching-301-redirects 上找到有关此主题的更多信息

因此,如果您尝试在 login page 上验证用户并且该页面的缓存标头在 30x (301-302-303-304...) 范围内,则 firefox 更有可能在客户端缓存该页面。

因此,当用户尝试登录时,login page 将不会在您的服务器上处理,而是firefox 将提供login page 的缓存版本,该版本重定向到hybridauth 身份验证页面,但登录失败转过来初始化认证所需的Session Object

解决方案:关闭login pagecaching headers 并确保它返回200 代码

【讨论】:

    【解决方案3】:

    我的 Facebook 应用程序处于沙盒模式,禁用沙盒为我修复了它!

    【讨论】:

      【解决方案4】:

      在配置 HybridAuth 时在端点 URL 中使用 $_SERVER['SERVER_NAME']

      【讨论】:

        猜你喜欢
        • 2014-03-24
        • 1970-01-01
        • 2020-05-26
        • 2015-06-03
        • 1970-01-01
        • 2017-04-23
        • 2015-07-18
        • 1970-01-01
        • 2020-12-31
        相关资源
        最近更新 更多