0
A
答えて
2
あなたはJWTsで動作する組み込みk6/encodingとk6/cryptoモジュールを使用することができます。
k6/crypto
モジュールで公開鍵暗号化がサポートされていないため、共有秘密鍵を使用してJWTに署名することはできます(純粋なJSでは暗号化を行わずに)。ここで
は、スクリプトの例です:
import crypto from "k6/crypto";
import encoding from "k6/encoding";
const algToHash = {
HS256: "sha256",
HS384: "sha384",
HS512: "sha512"
};
function sign(data, hashAlg, secret) {
let hasher = crypto.createHMAC(hashAlg, secret);
hasher.update(data);
// Some manual base64 rawurl encoding as `Hasher.digest(encodingType)`
// doesn't support that encoding type yet.
return hasher.digest("base64").replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "");
}
function encode(payload, secret, algorithm) {
algorithm = algorithm || "HS256";
let header = encoding.b64encode(JSON.stringify({ typ: "JWT", alg: algorithm }), "rawurl");
payload = encoding.b64encode(JSON.stringify(payload), "rawurl");
let sig = sign(header + "." + payload, algToHash[algorithm], secret);
return [header, payload, sig].join(".");
}
function decode(token, secret, algorithm) {
let parts = token.split('.');
let header = JSON.parse(encoding.b64decode(parts[0], "rawurl"));
let payload = JSON.parse(encoding.b64decode(parts[1], "rawurl"));
algorithm = algorithm || algToHash[header.alg];
if (sign(parts[0] + "." + parts[1], algorithm, secret) != parts[2]) {
throw Error("JWT signature verification failed");
}
return payload;
}
export default function() {
let message = { key2: "value2" };
let token = encode(message, "secret");
console.log("encoded", token);
let payload = decode(token, "secret");
console.log("decoded", JSON.stringify(payload));
}
関連する問題
- 1. JWT - 署名は
- 2. 署名JWTとES256アルゴリズム
- 3. JWT署名検証
- 4. JWTトークン署名検証javacript
- 5. JWT無効な署名
- 6. PHP JWT無効な署名
- 7. Kong JWT無効な署名
- 8. Google OAuth JWT署名検証
- 9. Google OAuth2の署名のJWT "invalid_grant"
- 10. JWT署名の検証は、javaは
- 11. Google JWT Salesforceの署名が無効
- 12. PHP JWTトークンが無効な署名
- 13. JWTトークンが無効な署名
- 14. "詳細:無効な署名です。" JWT
- 15. "無効な署名" JWTトークンOpentok
- 16. HMAC 256とHMAC 512 JWT署名の暗号化
- 17. JWT署名とエンコーディング:やりすぎや良いアイデア
- 18. JWTトークンクレームと署名を分割する方法
- 19. 署名されたJWTの鍵クローキング資格の取得
- 20. 署名済みの暗号化されたJWTの生成
- 21. C#JWTトークンの署名を確認する方法は?
- 22. .NETのコア - JWTミドルウェア認証署名キーは無視されて
- 23. 春のJWT署名検証に失敗しました
- 24. Googleプラットフォームのサービス認証で無効なJWT署名
- 25. 2つの異なるプラットフォームからのJWTの署名と確認?
- 26. RSA SHA-256ハッシュでJWTに署名する方法
- 27. JWT:署名シークレット形式を確認してください。
- 28. 署名なしでJWTトークンを作成しますか?
- 29. KubernetesをGoogle Cloud SQLに接続 - 無効なJWT署名
- 30. System.IdentityModel.Tokens.Jwtを使用してRS512でJWT署名を検証する