OAuth 2.0 アクセストークンを取得する
最終更新
役に立ちましたか?
役に立ちましたか?
{
"alg": "ES256",
"typ": "JWT",
"kid": "your_tenant_key_id"
}{
"iss": "イシュア_id",
"sub": "監査用のユーザー",
"exp": 1545222654,
"aud": "https://api.d1.thalescloud.io"
}openssl ecparam -name prime256v1 -genkey -noout -out issuerId-jwt-priv-key.pemopenssl ec -in issuerId-jwt-priv-key.pem -pubout > issuerId-jwt-pub-key.pem/*
プロジェクトに*jose*ライブラリをインストールしてください。
https://www.npmjs.com/package/jose
この例では 3.19.0 を使用します
*/
const { SignJWT } = require("jose/jwt/sign");
const { createPrivateKey } = require("crypto");
const alg = "ES256";
const kid = "your_tenant_key_id";
const iss = "your_イシュア_id";
const aud = "your_audience";
const expirationTime = "3mins";
const sub = "our_user_for_audit";
const privateKeyPem = `-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILlIXMnH1if8EuWykPmWw/LyXZuoNVCzMp3Yhbj9/sEUoAoGCCqGSM49
AwEHoUQDQgAE6swczLIRn/lPxQPpdUb2pHjCr0YeC02lkG7vMmqCNpalwIQSl+TR
fZVDwCKJmajRgK3+n5SyAgCp4oH8qNluwQ==
-----END EC PRIVATE KEY-----`;
async function generateJwt() {
const privateKey = createPrivateKey(privateKeyPem);
console.log(
await new SignJWT({})
.setProtectedHeader({ alg, kid })
.setIssuedAt()
.setIssuer(iss)
.setAudience(aud)
.setExpirationTime(expirationTime)
.setSubject(sub)
.sign(privateKey)
);
}
(async () => {
await generateJwt();
})();eyJhbGciOiJFUzI1NiIsImtpZCI6InlvdXJfdGVuYW50X2tleV9pZCJ9.eyJpYXQiOjE2MzYwMzMxODYsImlzcyI6InlvdXJfaXNzdWVyX2lkIiwiYXVkIjoieW91cl9hdWRpZW5jZSIsImV4cCI6MTYzNjAzMzM2Niwic3ViIjoib3VyX3VzZXJfZm9yX2F1ZGl0In0.lgVzN8k9IGcv1s-FZACpEyVxXcS9LAh4ahY3DO5Fg6MRl-Twa_wVAfw_Oe0XiH1Am-RFfafgDrepNi3Jz05Gvg