クライアント側のJavaScriptプログラムは、HMAC-SHA512メソッドに従って、プライベートな「シークレット」によってPOSTデータに署名する必要があるサービスにHTTP投稿を行う必要があります。「シークレット」を持っています、しかしこの署名を実行するためのJavaScriptコード/ライブラリが見つかりません。
誰かがブラウザでこれを達成する方法を知っていますか? Node.js暗号パッケージを使用するサーバー側コンポーネントを追加する複雑さを追加しないようにしています。 crypto.createHmac("sha512", api._apiSecret).update(queryString).digest("hex")
。
HMAC署名を作成できる多くのクライアント側ライブラリがあります(Googleがここで役立ちます)。たとえば jsSHA は cdnjs にもあります。ライブラリの使用方法の説明はgithubページにあります。
ただし、yourAPIシークレットをクライアントと共有するときは、それがJavaScriptファイルにハードコードされているか、サーバーへのリクエストであることを覚えておいてください、クライアントはシークレットを抽出して他のリクエストに使用できます。これらのリクエストは、プロバイダーの利用規約に違反したり、クォータを使い果たしたりする可能性があります。この悪用を防ぐには、ハッシュを作成するか、サーバー側でリクエスト全体を実行して、結果をクライアントと共有する必要があります。