環境
php 8.2.0
laravel 9.52.14
Windows10
一般的な流れ
webhookの通知先を自分のシステム上に構築し、
対象の通知イベントも利用するAPIで決め、上記で構築した通知先を登録したらうけとりそうだと思う。
ただ実際は、
これだけじゃ、うけとれない。
みんなが見過ごしがちなこと。ヒントはwebhookでの通知は一般的にpostメソッドでうけとるということ。
そして、postメソッドで受け取る場合、Laravelではセキュリティー向上のたけ、
Csrfがはたらく。
見過ごしがちなミス
webhookでの通知ではCsrfはオフにしないとうけとれない。
そうしないとはじいてしまうからだ。
たとえばだけど、自分の場合は、ngrokでローカルのシステムも外部からhttpsで接続できるようにしているが、こんなエラーがでる。↓
今回は、これに気づいたからようやく通知は来ていて、自分のシステム側でなんかミスがおきているって気づけた。
解決策
正直、webhookの設定は何回か(stripe,paypay,など)していて毎回同じことを忘れてしまってた。
だから、もう記事に書いとくことにした。
Csrfを無効にするURLは、
プロジェクトフォルダ/app/Http/Middleware/VerifyCsrfToken.php
に下記のように記載する。
これで、しっかりと”rootURL/webhook/remote_lock”にきた通知はうけとれる。
返信がありません