リクエスト検証について
下記のページにございますJavaサンプルコードにapiIdとhttpRequestBodyの値を入れてプログラムを実行したのですが、
"X-WORKS-Signature"に含まれる値と一致しません。
Pythonでも同様のコードを記載しましたがそちらでも値が一致しません。
途中の値を確認しても異なるので、変換元としているリクエストボディが間違っているのではないかと思っています。
変換元なるリクエストボディのサンプル、もしくは形式をご教示いただけないでしょうか。
投稿に新しいコメントが追加されましたら通知を送信します。
コメント2
업데이트 된 답글입니다.
佐藤正宗
express を使用してメッセージを受信していますが、JAVA はあまり明るくないのですが、何を使用していますか?
Python だと flask あたりでしょうか。
参考に、Node.js でのコードを張り付けておきますね。
const express = require('express');
const app = express();
app.use(express.json({verify:(req, res, buf, encoding) => {
const crypto = require('crypto');
const hmac= crypto.createHmac('sha256', process.env.API_ID);
hmac.update(buf);
const data=hmac.digest('base64');
const signature=req.headers["x-works-signature"];
console.log("body : " + data);
console.log("head : " + signature);
console.log("signature macth : " + (data == signature));
if (data!=signature) throw 'NOT_MATCHED';
}}));
app.post('/callback', (req, res) => {
console.log(req.body);
return;
});
2021.06.14
업데이트 된 답글입니다.
Nishi 投稿者
サンプルコードを参考にpythonコードを見直したら、うまくできました。
2021.06.16
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。