0

postmarkapp のインバウンド サービスを使用して、Web フックで JSON 形式のメールを受信して​​います。私の場合、メールを保存するために HTTP POST を受け入れる EmailController があります。

次のように設定されています。

Route::group(array('before' => 'auth'), function()
{
    Route::resource('emails', 'EmailController');
});

コントローラーの store アクションに関連する POST をフィルタリングしないようにするには、ルート グループが必要です。私は使用してみました:

array('before' => 'auth', 'except' => 'post')
array('before' => 'auth', 'except' => 'store')

そのため、どこでこれを行うべきか本当にわかりません。フィルター自体で多分?また、例外を実行するときにアクション名または HTTP 動詞を使用する必要がありますか?

おまけとして: 私はまた、ルート アクションをそのようにすべての人に開放することに完全に満足しているわけではありません。postmarkapp のみがそこに投稿されるようにする方法についてのアイデアはありますか?

ありがとう!

4

1 に答える 1

0

独自のフィルターを作成し、それに適切なロジックを追加します。例えば:

Route::get('test', ['before' => 'foo']);

Route::filter('foo', function($route, $request) {

    if ($request->getClientIp() === 'xxx.xxx.xxx.xxx')
    {
            //...
    }

    if ($request->getMethod() === 'POST'))
    {
            //...
    }

});

```

より複雑なフィルターのフィルター クラスを作成することもできます。http://four.laravel.com/docs/routing#route-filtersのセクションを読んでください。

于 2013-03-01T01:48:04.497 に答える