0

私の状況に特に一致するものは見つかりませんでした。次のように定義されたルート グループがあります。

Route::group(['prefix' => 'api/v1/{access_token}'], function(){
    ...
}

上記のグループには、内部にいくつかのリソース ルートがあります。access_tokenパラメータを検証し、パラメータが有効でない場合に 400 応答を返すカスタム ミドルウェアを作成しようとしています。コントローラーで次のようなことができるようにしたいと思います。

class ProductController extends Controller {

    /**
     * Instantiate a new ProductController
     */
    public function __construct()
    {
        $this->middleware('verifyAccessToken');
    }
    ...
}

私の質問は、「カスタム ミドルウェアを定義する方法」ではなく、カスタム ミドルウェアの関数access_tokenからパラメーターにアクセスするにはどうすればよいですか?handle

編集:重複として提案された質問は似ており、回答がありますが、その回答は時代遅れであるか、私が達成しようとしていることに満足していないようです。

4

3 に答える 3

0

Route::group にミドルウェアを貼り付けるだけです

Route::group(['prefix' => 'api/v1/{access_token}', 'middleware' => 'verifyAccessToken'], function(){

});

次に、Thomas Kim が指摘したように、ミドルウェアで$requestオブジェクトを使用して、ルートに渡されたトークンにアクセスできます。

public function handle($request, Closure $next)
{
    $token = $request->access_token;
    // Do something with $token
}
于 2015-11-12T18:26:02.917 に答える
0

http://laravel.com/docs/master/middleware#middleware-parameters

シンプルに

public function yourmethod($access_token){
    $this->middleware('verifyAccessToken', $access_token);
}

メソッドではできないと思います__construct()

于 2015-11-12T18:22:24.030 に答える