在使用json web token作為單點登入的驗證媒介時,為保證安全性,建議將jwt的資訊存放在http的請求頭中,並使用https對請求鏈結進行加密傳輸,效果如下圖所示:
1.由於專案是前後端分離的,不可避免的就產生了跨域問題,導致authorization始終無法新增到請求頭中去,出現的請求如下圖所示:
原因:理論請看這篇文章:(點這裡),簡單來說就是,當在進行跨域請求的時候,如圖自定義請求頭,如新增authorization欄位,那麼http請求會發出乙個預檢請求,即options請求,訪問伺服器是否允許該請求,如果瀏覽器沒有進行跨域設定,則就會出現如上圖所示的錯誤。
解決辦法:瀏覽器設定跨域處理,這裡介紹最簡單的方式
1.引用跨域處理的jar包
2.在web.xml中新增如下配置:com.thetransactioncompanygroupid>
cors-filterartifactid>
dependency>
注意要在下圖的位置新增上自定義的請求頭欄位:authorization
/*這樣瀏覽器請求的時候就會成功響應預檢請求了,如下圖:
1.方法一:
2.方法二:$.ajax(
});
1.自定義http方法,全域性使用自動新增token到header中,或者使用***,方法類似。$.ajax(,
success: function
(result)
});
}總結:有時候問題不是不能解決,而是需要多了解知識,從多個角度來思考問題,這也是這個問題困擾了好長時間的原因。
將token新增到請求頭中進行網路請求
網路請求字串 nsstring urlstring utf 8轉碼 nsstring urlstr urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding 建立請求物件 nsmutableurlrequest ...
linux將程式新增到服務
方式 1 如果通過yum安裝的服務,直接敲入下面的命令就可以了開機時自動啟動服務了 方式 2編寫自己的服務指令碼 系統預定義函式 start stop restart reload 告訴程式重讀配置檔案,改變程式的執行狀態 etc rc.d init.d 系統服務指令碼目錄 var lock sub...
將應用新增到開啟方式
android.intent.action.view android.intent.category.default intent intent getintent string path null if intent.action view.equals intent.getaction catc...