コンテキスト:localstorageを使用してjwtを通じてnode.jsアプリケーションを認証します。JWT署名とエンコーディング:やりすぎや良いアイデア
これについて多くの意見を読んだ後、私はかなり混乱しています。 私はこのコードを持つユーザでログインする実装を持っている:
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は、彼らが「管理者」ユーザです表示されるでしょう)悪用される可能性の請求を追加していく予定です。これはeコマースサイトではありませんが、上記のシナリオでは安全なものにしたいと考えています。
トークンを大きくすると(約30%大きくなります)、これがパフォーマンスに影響します。人々が現在持っている帯域幅を考えると余分な少数のキャラクターは本当に重要ですか
スニペットのおかげで。いくつかの点:トークンはまだbase64でエンコードされています。エンコードされた 'ペイロード'変数をエンコードしたbase64です。また、仕様書には、jwtがbase64でエンコードされていることが記載されていますが、ライブラリではさまざまなタイプのアルゴリズムが使用できます:optionsセクションの値 – user2331566
はい、JWTをビルドする場合、JSONペイロードは** base64 url encoded **標準アルゴリズム、base64エンコーディングを適用し、後に2つの文字を置き換えます – pedrofb