當我們的用戶進行系統登錄時,用戶名和密碼的驗證都是后端驗證的。而且,用戶登錄狀態也是要后端設置的,查詢數據庫后,用戶名和密碼正確,則在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>