2017-03-17 68 views
1

因此,我正在學習如何使用Google的Oauth系統來允許用戶使用他們的Google帳戶登錄。我一直在使用這個追索書here:在我的網站上實現它。爲什麼我的Google登錄會話在某些頁面上過期而沒有其他頁面?

所以我的測試頁上,當我嘗試登錄,然後更改頁面,用戶仍然登錄成功。

然而,當我再從測試頁的PHP代碼,把它放在我的世界頭 - 當用戶試圖訪問相同的鏈接。一旦用戶登錄,一旦他們去到另一個頁面,他們會自動註銷。

test2頁面上的代碼與其索引頁面示例完全相同。在我的頭文件中,我已將它添加到我的導航欄中,因此當用戶在導航欄上按下「登錄」時,登錄按鈕位於模式內。

在測試2中使用的鏈接是在我的頭中使用的相同:

<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>

我已經使用這個如果檢查語句,如果用戶登錄如果他們登錄它會顯示與帳戶選項的下拉菜單,否則會顯示登錄按鈕,它會打開模式。也許這是問題,而不是他們的會話過期,可能真的我正在檢查錯誤的功能?

<?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 } ?>

的完整標題代碼在這裏可以看到,如果將幫助:https://hastebin.com/izihuhavep.scala

回答

0

好吧,我設法解決它,因爲某些原因,當PHP代碼創建一個會話中頭不起作用。不知道爲什麼,但當我把它移到頭頂上時,它完美地工作:)

相關問題