[英]My approach for JWT - REST API
我的問題是關於我的JWT與REST實現的方法。
我在客戶端使用AngularJS,在服務器端使用PHP。
第一次加載頁面時,我向服務器發出一個GET請求並從Web服務(編碼簽名)獲取簽名。
當有人打開網頁時,我們會提供登錄表單,當用戶正確填寫時,我們會以JWT加密格式向服務器發送登錄信息:
Header(ALGORITHM & TOKEN TYPE).Payload(Login form data).Signature(Received from the first GET web service call)
現在,登錄后,我們從服務器獲得了exp
即令牌過期超時數據。 現在我們向登錄用戶顯示另一個表單。 它用於創建員工。 所以,我的實現是:
addEmployee
webservice。 但是我們僅在header authorization bearer
傳遞數據。 例如: Host: mysite.com POST: /services/addEmployee Accept: application/json Content-Type: application/json Authorization: Bearer Header(ALGORITHM & TOKEN TYPE).PAYLOAD(Employee form data + EXP token expire time received in the response of login web service).Signature
所以,這里我們不會在請求主體上傳遞任何內容。 即使這是POST請求。 在服務器端,我們只是解碼承載並獲得有效負載。
我真的不想以純文本格式發送任何數據。 例如,如果我們在正文中發送POST數據,那么任何人都可以看到正在傳遞的內容。 我希望將我的Web服務加密到某種程度。 這種方法無論如何都是正確的還是有害的?
我認為你的做法是錯誤的。 JWT有效載荷不用於保存敏感信息。 任何人都可以閱讀它。 您可以記錄有效負載,但這不是JWT通常用於的方式。
通常,JWT有效負載應包含不敏感或特定於請求的聲明(例如,您的員工形成數據)。 將這些數據保存在請求正文中,這樣您就可以將JWT重用於不同的API調用,無論您使用哪種HTTP動詞和參數來滿足您的不同需求。
整個請求將使用SSL編寫,因此您不會發送任何純文本數據。 永遠不要在沒有HTTPS的情況下使用它,因為任何人都可以獲得您的令牌並冒充用戶。
希望它有所幫助,問候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.