背景:我通過使用localStorage通過jwt的身份驗證node.js應用程序。智威湯遜簽名和編碼:矯枉過正或好主意
在閱讀了很多意見後,我很困惑。 我有記錄與該代碼的用戶實現:
var payload = jwts.encode({id: user.id}, jwtOptions.secretOrKey);
var token = jwt.sign(payload, jwtOptions.secretOrKey);
這是一個有點簡單化。但是,我想知道編碼是否真的有必要。我應該去這個呢?
var payload = {id: user.id};
var token = jwt.sign(payload, jwtOptions.secretOrKey);
我沒有在有效載荷過於敏感數據,但我會加入其中可以看到和利用(用戶的計算機被攻破和localStorage的將顯示他們是「管理員」用戶)索賠。這不是電子商務網站,但我希望它在上面(可能不太可能)的情況下是安全的。
否定的是它使標記更大(大約30%),所以這會影響性能。考慮到人們現在的帶寬,額外的幾個字符真的很重要嗎?
謝謝你的片段。幾點:令牌仍然是base64編碼,它是base64編碼的編碼「有效載荷」變量。另外,即使規範聲明jwt是base64編碼,庫允許使用許多不同類型的算法:選項部分中的值 – user2331566
是的,在構建JWT時,JSON有效內容是** base64 url編碼**它是一種標準算法,應用base64編碼並在替換了幾個字符後 – pedrofb