6 回答

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

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

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

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

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

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