为什么我的Google登录会话在某些页面上过期而在其他页面上失效?

时间:2017-03-17 14:32:22

标签: php session login google-api google-oauth

所以我正在学习如何使用Google的Oauth系统来允许用户使用他们的Google帐户登录。我一直在使用此追索权here:在我的网站上实施它。

因此,当我尝试登录然后更改页面时,在我的测试页面上,用户仍然成功登录。

但是,当我从测试页面获取PHP代码时,将其放在我的全局标题中 - 当用户尝试访问同一链接时。一旦用户登录,一旦他们转到另一个页面,他们就会自动登出。

test2页面上的代码与其索引页面示例完全相同。在我的标题上,我已将其添加到我的导航栏中,因此当用户按下导航栏上的“登录”时,登录按钮位于模态内。

test2中使用的链接与我的标题中使用的链接相同:



  <a class="btn btn-block btn-social btn-google" <?php echo "href='".filter_var($authUrl, FILTER_SANITIZE_URL)."'" ?>>
    <span class="fa fa-google"></span> Sign in with Google
  </a>
&#13;
&#13;
&#13;

我已使用此if语句检查用户是否已登录。如果他们已登录,则会显示带有帐户选项的下拉列表,否则会显示登录按钮以打开模式。也许这就是问题,而不是他们的会议到期,我真的可以检查错误的功能吗?

&#13;
&#13;
<?php if ($gClient->getAccessToken()) { ?>

<div class="dropdown">
  <button class="btn btn-default dropdown-toggle" type="button" id="accountmenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<?php echo $gpUserProfile['given_name'] ?>
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" id="accountdropdown" aria-labelledby="dropdownMenu1">
    <li><a href="/user/bookmarks">Bookmarks</a></li>
    <li><a href="#">Settings</a></li>
    <li role="separator" class="divider"></li>
    <li><a href="/logout">Logout</a></li>
  </ul>
</div>
<?php } else { ?>
<a class="btn btn-default" data-toggle="modal" data-target="#login-modal" id="login">Sign In</a>
<?php } ?>
&#13;
&#13;
&#13;

如果有帮助,可以在此处看到完整的标题代码:https://hastebin.com/izihuhavep.scala

1 个答案:

答案 0 :(得分:0)

好的,我设法修复它,出于某种原因,当创建会话的PHP代码在头部时它不起作用。不知道为什么,但当我把它移到头顶以上时它完美地工作了:)