認証用の Houndify API ドキュメントには、次のコンテンツ ブロックがあります。
リクエスト認証の例
次の情報があるとします。
UserID: ae06fcd3-6447-4356-afaa-813aa4f2ba41
RequestID: 70aa7c25-c74f-48be-8ca8-cbf73627c05f
Timestamp: 1418068667
ClientID: KFvH6Rpy3tUimL-pCUFpPg==
ClientKey: KgMLuq-k1oCUv5bzTlKAJf_mGo0T07jTogbi6apcqLa114CCPH3rlK4c0RktY30xLEQ49MZ-C2bMyFOVQO4PyA==
UserID 文字列、RequestID 文字列、および TimeStamp 文字列を次の形式で連結します。
{user_id};{request_id}{timestamp}
この例の値を使用すると、予想される出力は次のようになります。
ae06fcd3-6447-4356-afaa-813aa4f2ba41;70aa7c25-c74f-48be-8ca8-cbf73627c05f1418068667
デコードされた ClientKey でメッセージに署名します。結果は 32 バイトのバイナリ文字列です (視覚的に表現できません)。ただし、base-64 エンコード後の署名は次のようになります。
myWdEfHJ7AV8OP23v8pCH1PILL_gxH4uDOAXMi06akk=
その後、クライアントは 2 つの認証ヘッダーHound-Request-AuthenticationとHound-Client-Authenticationを生成します。
Hound-Request-Authentication ヘッダーは、UserID と RequestID を次の形式で連結して構成されます
{user-id};{request-id}
。上記の例を続けると、このヘッダーの値は次のようになります: Hound-Request-Authentication:ae06fcd3-6447-4356-afaa-813aa4f2ba41;70aa7c25-c74f-48be-8ca8-cbf73627c05f
Hound-Client-Authentication ヘッダーは、ClientID、TimeStamp 文字列、および署名を次の形式で連結して構成されます
{client-id};{timestamp};{signature}
。上記の例を続けると、このヘッダーの値は次のようになります。Hound-Client-Authentication: KFvH6Rpy3tUimL-pCUFpPg==;1418068667;myWdEfHJ7AV8OP23v8pCH1PILL_gxH4uDOAXMi06akk=
番号 3 の場合、「デコードされた ClientKey でメッセージに署名する」と表示されます。「メッセージ」と「ClientKey」は 2 つの異なる文字列です。
私の質問: ある文字列を別の文字列でどのように署名しますか?つまり、それは正確にはどういう意味ですか? JavaScript でそれを行うにはどうすればよいでしょうか。
var message = 'my_message';
var key = 'signing_key';
//??what next??
Postman で事前要求スクリプトを作成して、適切な HmacSHA256 ハッシュを実行できるように、これらすべてを理解しようとしています。