6 回答

TA貢獻1865條經驗 獲得超7個贊
您可以使用 PHP 增加會話超時。如果您希望會話在瀏覽器關閉之前保持活動狀態,您可以簡單地將 session.gc_maxlifetime 設置為 0:
ini_set('session.gc_maxlifetime',?0);
如果您想要無限會話,可以將 session.gc_maxlifetime 設置為:
?ini_set('session.gc_maxlifetime',?60?*?60?*?24?*?365);?#?session?expires?after?1?year
否則,您可以在啟動會話之前將 session.gc_probability 設置為 0。這將使垃圾收集器刪除會話數據的機會為 0%。您必須在共享同一會話存儲位置的所有應用程序中執行此操作。
?ini_set('session.gc_probability',?0);
您還可以從 php.ini 文件更改這些值

TA貢獻1884條經驗 獲得超4個贊
Cookie 是網站識別用戶的方式,以便即使在瀏覽器重新啟動時也能保持會話活動。
Cookie 不應用于存儲登錄憑據。只有服務器生成的唯一會話標識符才能在設備稍后訪問網站時識別該設備。
Cookie 必須在未來的某個時間過期,但您可以將其過期日期設置為幾年后。
Cookie 可以使用JavaScript
document.cookie
從客戶端設置,也可以使用 PHP 在服務器端(對于會話處理更實用)通過Set-Cookie HTTP 響應標頭進行設置,這可以使用PHP 標頭函數手動完成,或者更好地使用setcookie 函數或者更容易讓 php 使用其內置會話函數為您處理整個會話處理過程。

TA貢獻1835條經驗 獲得超7個贊
您正在尋找的稱為PHP Session。您可以使用 PHP 會話為用戶創建“活動”頁面,以獲得自定義用戶體驗。會話比 cookie 相對安全,因為它們存儲在服務器計算機中,但正如 @Anirudhsanthosh 提到的,您可以使用兩者以獲得更好的體驗。
這是有關如何使用PHP Session 創建登錄頁面的教程。
基本思想是,當用戶輸入用戶名和密碼時:
檢查該用戶名和密碼是否與您存儲在數據庫中的內容相同。
如果用戶名和密碼匹配,您可以將給定的用戶信息存儲在會話變量中,如下所示
$_SESSION['user'] = $username;
在必須授予僅登錄用戶訪問權限的每個頁面上,檢查用戶是否以以下身份登錄:
if(!isset($_SESSION['user'])){ //?REDIRECT?TO?LOGIN?PAGE }
PS:不要忘記在每個頁面的開頭啟動會話,因為session_start();

TA貢獻1783條經驗 獲得超4個贊
這稱為 OAauth 身份驗證。每家提供 OAuth 身份驗證的公司(如 Google、Facebook、Amazon、Github 等)都會為您提供有關如何正確執行此操作的文檔說明。
無論如何,您必須擁有自己的身份驗證邏輯,該邏輯將服務于所描述的任何選項,并且您必須一一實現它們中的每一個。對用戶進行身份驗證后,您必須在任何應用程序中照常保留創建的會話。

TA貢獻1828條經驗 獲得超6個贊
您可以為此使用 php $_SESSION 或 COOKIE
$_SESSION['USER'] = ['current user details'];
您可以將 cookie 和 session 結合起來,作為初學者首先使用 season 以獲得良好的體驗
您不能將 cookie 的到期日期設置為超過 2038 年,否則它將結束

TA貢獻1827條經驗 獲得超8個贊
事實上,它是 Open Id Connect,允許用戶按照您描述的方式進行連接。
Oauth2 是幾年前開發的。它是一種授權協議,這意味著它基本上用于管理數據訪問。它有多個工作流程,具體取決于您想要做什么。
OpenId Connect 它是一個覆蓋層,通過 Oauth2 流實現身份驗證過程。事實上Oauth2和OpenId Connect是互補的。OpenId Connect 的 90% 實際上是 Oauth2。其余部分是使 Oauth2 可用于身份驗證的部分
事實上,互聯網上的文檔使用不同的流程,這使得理解變得更加復雜
我認為我所說的實際上并不明確,而且這是一個廣泛的主題。我花了很多功夫才理解它是如何工作的。
- 6 回答
- 0 關注
- 239 瀏覽
添加回答
舉報