使用cookie實現登入狀態的儲存及判定

2021-08-01 20:17:40 字數 2284 閱讀 4164

cookie是指某些**為了辨別使用者身份而儲存在使用者本地終端上的資料(通常經過加密)。

所以通過cookie可以實現對使用者登入狀態的判定,防止使用者不經過登入直接進入一些頁面,或者進入一些沒有許可權的頁面。

那麼如何對cookie進行操作呢?

在cookie中,除了name和value,每條記錄還有很多屬性,如失效時間,是否採用安全協議傳輸等等,大部分屬性不常用到,在此不詳細介紹,這裡有相當詳細的介紹。

下面是我實現的,對cookie的name、value和失效時間的寫方法:

function

setcookie

(c_name, value, expiredays)

**還是很簡單的,只需要將傳入的值組合成字串放入cookie中就可以了。

當使用document.cookie對cookie進行操作時,瀏覽器會自動把傳入的name和已經存在cookie中的name進行對比,如果已經存在那麼就會覆蓋掉,如果不存在就會建立一條新的cookie記錄來儲存鍵值。

在對cookie進行讀操作時,需要對cookie是否存在,cookie中是否存有這條記錄進行判斷。

下面是我實現的,根據name來進行cookie的讀操作:

function

getcookie

(c_name)

}return

""//不存在就返回空

}

主要是通過字串操作,找到儲存的value的位置。

注意:在這裡,有個坑。。。就是indexof(),會把檢測到的第乙個符合條件的字元位置返回,所以如果cookie記錄中有一條記錄1的name包含另一條記錄2的name,並且記錄1的位置在記錄2的前面,那麼查詢記錄2的時候將會找到記錄1。

比如:記錄1:」username=123456」,記錄2:」name=xiaoming」

那麼在獲取記錄2時將會獲取到記錄1

所以在命名的時候需要注意,盡量不要和曾經有的記錄的name相同。

那麼cookie是如何儲存登入狀態的呢?

首先,在使用者登入成功的時候,在後台會設定cookie值,用來儲存使用者的username,和identity(身份)

然後,在除了登入介面以外的所有介面,都會判斷cookie中是否存在該使用者的cookie,如果不存在就返回到登入介面,如果存在那麼判斷該身份是否具有訪問該介面的許可權,如果具有許可權才可以繼續訪問,否則跳轉到其他具有訪問許可權的介面。

下面是student.html介面對身份進行判斷的**:

var username;//登入使用者的使用者名稱

var identify;//登入使用者的身份

//檢查是否已登入和登入者的身份

function

checkidentify

() else

}}//在頁面載入之前就要進行登陸者身份判斷

checkidentify();

由於後台還沒寫好首先是沒有登入時

setcookie("username", "", -1);

setcookie("identify", "", -1);

如果前面設定過cookie值,那麼通過這兩條語句,將cookie值無效化。

這時,如果直接訪問student.html就會這樣:

然後返回到登入介面

然後嘗試以teacher身份登入,訪問學生介面,通過下面兩行語句改變cookie值:

setcookie("username", "201408010111", 1);

setcookie("identify", "teacher", 1);

這時,訪問student.html就會這樣:

然後返回到teacher.html介面

cookie的中文亂碼問題:

使用decodeuricomponent()對中文進行處理

return

decodeuricomponent(document.cookie.substring(c_start, c_end));

PHP 使用cookie實現記住登入狀態

php使用cookie實現記住登入狀態,本文用最原始的方法講解如何實現記住登入狀態,給出3個步驟和具體實現 需要的朋友可以參考下。要實現記住密碼自動登入的功能,我們大多數據都是利用了客戶端的cookies來實現。php製作記住密碼自動登入的解決思路,其實也就是對session,cookies的操作 ...

php使用cookie實現記住登入狀態

要實現記住密碼自動登入的功能我們大多數據都是利用了客戶端的cookies來實現,我們利用php也不例外,有需要的朋友可以參考一下。php製作記住密碼自動登入的解決思路,其實也就是對session,cookies的操作 一 檢查使用者是否登入 複製 如下 檢查使用者是否登入 function chec...

通過cookie實現記住登入狀態

基於用session來判斷使用者的登入狀態,然後用存放在瀏覽器的cookie來判斷是否需要幫助登入 登入時存cookie到客戶端 是否記住登入狀態 if remember null remember 1 過期時間 string cookietimeout conf.getvalue cookieut...