Salesforce部隊は、外部からの接続においてOAuth認証(認可)したい場合にいちいちログイン画面を開かずに、固定された接続専用のユーザを利用してシステム連携をしたい場合があります。なくとも、JWTを利用したいケースはいろいろあります。最近はJWTの虜と言っても申し分ありません。JWTを公開鍵認証方式で利用する場合について考えましょう。jwt.signでアクセストークンを作る場合の「鍵」は「秘密鍵」になります。server.key(pem)などの秘密鍵ファイルを元にシて、アクセストークンを生成します。Githubなどでソースコードを保管する場合に、この秘密鍵のファイルも含めてあげないといけないので少々厄介です。できることならば、環境変数などで設定したいの心。環境変数に秘密鍵のファイルの内容をそのまま書いても利用できません。それは次の2つの理由があります。npmパッケージでは、秘密鍵をバイナリとして扱うこのように、環境変数に定義して再利用するには、そのままではいけません。これらに対処が必要です。秘密鍵の改行コードを維持したまま環境変数化するやり方は次の2ステップです。コマンドをうちます(Macの場合)。要は改行コードを\nという文字に置き換えます。改行コード自体を排除して1行化します。試しに実行するとこんな感じです(もう利用していない秘密鍵なので、悪さには使えません)。KEY-----これで1行化できました。これを環境変数にセットします。Varsに追記ですね。環境変数の内容に改行を付与するさて、これだけではすみません。してあげれば良いだけです(PRIVATE_KEYは環境変数名)。秘密鍵をバイナリ化して署名するRSAの秘密鍵・公開鍵を利用する場合、それらはバイナリとして扱われていなければなりません。してあげれば良いだけです。ありますので、これを利用して秘密鍵の文字列をバイナリ化します。なんかで良いでしょう。signメソッドで署名すれば、JWTトークンの完成です。issやaudといった必須パラメータも環境変数化することで、より安全なソースコードになります。それらも踏まえて、トークンを作成するコードを準備すると、結果、次のようになります。});この秘密鍵が正しいかどうかはverifyして上げればよいです。なりますので、これを含めたソースコードは次のようになります。console.log(decorded);});例えば、環境変数を次のようにセットした場合。CERTIFICATE-----'ISSUER='ISSUER'AUDIENCE='AUDIENCE'SUBJECT='sho@oshiire.to'結果は、次のとおりになります。}正しくVerifyされていれば、このようにclaimの内容がDecordの結果として返されてきています。まとめRSA公開鍵方式で作成された鍵ファイルを環境変数で利用したい場合には、次の2ステップが必要。一行化して環境変数に登録する。アクセストークンを作成するときには、改行コードを復帰してバイナリ化してから署名する。使い方を見ていたら、base64化するのが、作法みたいにも見えますので、その場合の使い方についても書き記しておきます。base64か...。console.log(decorded);});おまけが本編じゃないのかな...。オンプレインフラメインのインフラエンジニアが、ソフトウェア中心のPaaS/SaaS業界へ転身し、一度はやめたアプリケーションに手を出し始めている昨今、みなさまいかがお過ごしでしょうか。upLoginユーザーは見つかりませんでした。