我正在創建一個Angular應用程序,並且我無法圍繞正確的方式來保證我的應用程序及其用戶的安全。保護角度應用程序
我一直在閱讀上許多棧的討論,但我相信我的思念發生了什麼事的一些核心的理解,請糾正你看到下面寫的任何錯誤。
到目前爲止,我有很多(目前主要是假設的)資源路由的西納特拉服務器。用戶可以使用電子郵件地址和密碼創建一個帳戶,該電子郵件地址和密碼在與BCrypt進行哈希處理之後存儲在數據庫中。用戶登錄時,通過電子郵件從數據庫中檢索記錄,並檢查密碼以進行身份驗證。從這一點我不確定如何繼續。
在此之前,我只是設置一個會話變量並有服務器檢查該變量,以便存在正確路線在用戶登錄。現在我的應用程序(當前)是一個單獨的HTML頁面,它使用Angular和ui-router來顯示不同的內容,所以大部分請求都只是返回JSON內容。
這是我的理解是RESTful應用程序一般不應使用會話,或者更確切地說,服務器應該相同,以相同的請求並沒有塑造一個響應自己的數據。 但是,如果我不在會話變量中存儲某些內容,服務器如何知道發出請求的客戶端具有正確的權限?而且會話還沒有存儲在瀏覽器中,因此不是服務器的一部分?
我從我已閱讀相信,就可以創建令牌基本上是一個大的隨機字符串,該字符串返回到客戶端,也將其存儲在一個時間戳的數據庫。然後,客戶端在提出請求時提供此令牌,並且服務器命中數據庫以驗證其是否存在並且有效。但客戶端是否也必須將該字符串存儲在cookie中?我猜想角度應用程序可以將令牌存儲在一個變量中,該變量在使用ui-router時會持續存在,但如果用戶使用地址欄導航則不會。
我也不明白基本身份驗證可能會或可能不適合這張圖片。任何幫助將不勝感激,並指向一些優秀的資源,我可能會更好地理解這些概念。
謝謝我會研究它 – ErikAGriffin
這正是我所期待的,文章也澄清了會話/ cookies。謝謝。 – ErikAGriffin