當我們的使用者進行系統登入時,使用者名稱和密碼的驗證都是後端驗證的。而且,使用者登入狀態也是要後端設定的,查詢資料庫後,使用者名稱和密碼正確,則在session中儲存一個uuid,每個頁面需要根據登入狀態判斷展示對應的內容時,則判斷是否有uuid這個session ,且uuid不為空。例如頭部的登入按鈕,在未登入狀態是顯示登入按鈕,在登入後顯示使用者名稱和頭像,這些都是判斷是否有uuid這個值(具體實作裡,相對來說更複雜一些)。
我們再來理下這個步驟:
向後端ajax發送用戶名和密碼
後端接收到用戶名和密碼後,查詢資料庫
若查詢失敗,則返回一個json數據,如:{"status" :"-1", msg:"使用者名稱或密碼不正確"}
若查詢成功,則在session中儲存一個值,例如uuid,然後向前端傳回一個json,例如:{"status":"0 ", msg:"success"}
前端js接收到回傳的資料後,判斷status的值,若status==0,則使用window.location.href進行跳轉;其他的狀態碼都是登入失敗,清空密碼框,讓使用者重新輸入
例如登入成功跳到首頁,首頁的php或java,需要判斷session裡是否有uuid
<nav> <?php if(isset($_SESSION['uuid']) && !empty($_SESSION['uuid'])):; ?> <!-- 若存在uuid,则不为空,则表示已经登录 --> <a href="#">蚊子</a> <?php else ?> <!-- 没有登录 --> <input type="button" value="登录" /> <?php endif; ?> </nav>