想請教一個關於jwt token的問題
目前有做一個攔截器
在前端每次發request都會額外處理header
但是有時送到後端的token是被截斷的
正確token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VyU24iOjUsIlVzZXJDb2RlIjoxMDAwMywiRXhwIjoxNTc5MTE2ODExLjB9.i7iUnOtehhQNUh0-OinelmiwUSdSCud26ZdqSno5LJs
錯誤token(第二個點之後都消失了):
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VyU24iOjIyMzYsIlVzZXJDb2RlIjoxMDAwMiwiRXhwIjoxNTc5MDQ5ODE
想請教會有什麼狀況導致這樣的情形產生嗎?
目前已經確定的是後端每次吐回來的token都是正確
但是前端從local storge取出來發送出去的有時候會被截斷
從上述程式碼中沒有看出問題,建議你先自己做個簡單的 sample 試試看能不能重現問題
問題在於沒辦法把狀況重現出來
在本機測試各種方式 也有問客戶是如何操作
結果都是token都很正常
但是在客戶端卻偶爾會出現這樣的狀況
想不通會有什麼狀況會造成這樣的情形…
有想過會不會是localStorge的問題
當使用不同瀏覽器 交互瀏覽網頁時 導致token異常!?
但是查過資料 不同瀏覽器所存的localStorge是分開的
我自己測試也沒有問題
不知道還有什麼線索可以尋找
是發生什麼樣的錯誤讓你覺得是jwt token被截斷?
可以多給一些資訊讓大家比較容易知道你的問題點
我有在後端用Attribute過濾token
發生的例外錯誤如下:
Token must consist of 3 delimited by dot parts.
去查記錄後才發現送過來的token後半部都不見了
(發生例外時我會把資料存在DB,包含當下送過來的token)
在這邊解析token時就發生錯誤了
這問題是發生在同一個人身上嗎? 有任何規律嗎? 因為程式碼看起來都很正常
查了一下紀錄 大約有兩百多個使用者有這樣的狀況
約10位左右目前為止累計50次以上
(這10位都是員工,使用頻率很高)
另外網站是架在Azure虛擬機的IIS上面
有開一個虛擬機環境起來
找這個問題找到很頭痛
目前找不到線索或關鍵字
才想說上來請教各位有什麼方向可以摸索看看
沒遇過也沒聽過token會截斷的問題,也許問題不是來自於這邊
token有存到cookie嗎?會不會儲存的資料中包含了中文,然後編解碼以後導致資料少掉
會是在產生 jwt 時,token 就不齊全的可能性嗎?
沒有存到cookie耶 只有放在localStorge
token裡面沒有中文 只有英數字 而且很短
User_sn = 1
User_code_sn = 101
只有包含類似這樣而已
這個我有測試過了
每次產新token出來時如果已經有問題我會記錄起來
但是完全沒看過後端產出的token有錯誤
Kevin
12
這樣真的很難通靈,localStorage 沒聽說有掉資料,除非塞爆,但這可能性又很低,只能分析發生錯誤的是否有相似或相同的地方,或是重寫那一段的程式碼了
看來只能把這段打掉重練了
再試試看還會不會有類似狀況
感謝各位提供的意見!!