2016-12-25 80 views
0

快速提問:當您在網站上登錄您的帳戶時,它會如何保持您的登錄狀態,以便您在訪問另一個頁面時不會再次登錄?網站如何讓您登錄

+3

請在您的問題中發佈詳細信息。您是否試圖讓用戶長時間登錄您的系統或所有頁面?請清除。 –

+0

他們基本上選擇cookie失效日期很遠的東西 – Viney

+0

快速回答。您在cookie中首次登錄後保存令牌。之後,您再次授權用戶的令牌。您應該將Cookie的到期時間設置爲您想要的時間(例如,日/周/年) –

回答

1

這是所有關於會話。

Source

在計算機科學,特別是網絡,一個會話是 半永久性的互動信息交流,也被稱爲 對話,談話或會議,兩個或兩個以上 通信之間設備之間或計算機和用戶之間 Web服務器會話管理 ... 超文本傳輸​​協議(HTTP)是無狀態的:運行Web瀏覽器的客戶端計算機 必須建立新的傳輸控制 Proto col(TCP)網絡連接到每個新的HTTP GET或POST請求的Web服務器。因此,Web服務器不能依賴於建立的TCP網絡連接長於單個HTTP GET 或POST操作。會話管理是開發人員使用無狀態HTTP協議支持會話狀態的技術。 例如,一旦用戶已被認證到Web服務器,用戶的下一個HTTP請求(GET或POST)不應該使Web服務器 再次詢問用戶的帳戶和密碼。對於 討論的方法中使用以實現此看到HTTP Cookie和會話ID

在多個web服務器必須共享的 會話狀態的知識(如在羣集環境中典型的)會話 信息必須之間共享的情況下運行 網絡服務器軟件的羣集節點。用於在集羣中的節點 之間共享會話狀態的方法包括:向會員節點 (參見用於該技術的一個示例的JGroup)的多播會話信息,與使用分佈式共享存儲器的夥伴節點或者共享會話共享會話 信息使用網絡套接字的節點之間的信息,在諸如分佈式文件系統或全局文件系統的共享文件系統 上存儲會話信息,或者將會話信息存儲在數據庫之外的集羣之外。

如果會話信息被認爲是不需要的交易不可否認性 並且不包含 數據須遵守審計然後可用於存儲會話信息 的任何方法短暫的,易失性數據。但是,如果會話信息受到審計 合規性的限制,則應考慮用於會話存儲,複製和集羣的方法。

在具有可擴展標記語言(XML) 消息可以通過消費者的應用中使用構造的面向服務的體系結構,簡單對象訪問協議或 SOAP消息,以使web服務器到 創建會話。

在原PHP(最知名的框架,具有會話管理中間件,所以你不應該擔心它),如果你要管理一個會話,你必須包括在上面

session_start(); 

程序的網頁。當你這樣做時,你正在創建一個24分鐘(1440秒)的會話(by default)。

你可以將它修改爲從php.ini文件的任意整數。

在PHP中的所有會話數據存儲在$_SESSION全球。因此,它是一個數組,這樣你就可以設置會話變量(aanything你想要的)一樣,

$_SESSION['user_name'] = 'ernesto'; 
$_SESSION['foo'] = 'bar'; 
... 

在你的應用程序中的任何時候,你可以刪除$ _SESSION變量,

session_unset(); 

假設,您已經設置了以上變量,

print_r($_SESSION); 

將打印空數組,因爲您已通過未設置的過程刪除變量。

如果你想徹底摧毀一個會話,

session_destroy(); 

會爲你做它。

2

Html頁面是無狀態的,這意味着當您刷新頁面時,所有數據都來自服務器以前,已經消失並且不得不再次請求。

在瀏覽器中存儲數據有不同的方式,即Cookies

當您第一次登錄時,頁面將您的登錄名Data存儲在瀏覽器中,因此當您更改頁面或刷新頁面時,頁面會嘗試使用該Data登錄,如果存在!否則,您必須再次輸入您的登錄數據!

你可以簡單地通過清除瀏覽器緩存來測試它。

-1

使用的cookie 你可以學習Cookie或會話你可以學到Session

0

Cookies和Session是驗證細節存儲在瀏覽器中的一些傳統方式。但是通過這些方法,服務器必須跟蹤登錄用戶和他們的cookie來驗證。所以在管理登錄用戶時有一些服務器操作。
但是,有一種稱爲JSON Web Token或JWT的新方法。這裏服務器將生成一個用戶特定的令牌,並在記錄時刻發送到瀏覽器客戶端。瀏覽器會將此令牌存儲在HTML5本地存儲或會話存儲中,並將在每個請求中發送此令牌!
因此,對於每個刷新瀏覽器代碼,都可以在本地存儲或會話存儲中檢查此令牌的可用性。這種方法的優點是服務器不必跟蹤已發出的令牌,並且能夠根據需要從令牌中提取數據。
此JWT廣泛用於驗證使用高級Javascript框架開發的Web應用程序:Angularjs或Reactjs(支持庫)