2

ここのドキュメントに従って、パスポートを使用してLaravelをセットアップしました。

https://laravel.com/docs/5.3/passport .

API ルートに 1 つのルートを記述http://localhost/laravel_project/public/api/userし、郵便配達員を使用してリクエストを送信しましたが、以下のエラーが表示されます。

RouteCollection.php 行 161 の NotFoundHttpException:

次のルートがあります(routes/api.php内):

Route::get('/user', function (Request $request) {
    return array(
      1 => "John",
      2 => "Mary",
      3 => "Steven"
    );
})->middleware('auth:api');

しかし->middleware('auth:api')、ルートの行を削除すると、うまく機能しています。

どうすればこれを修正できますか?

また、一部のルートにパスポート認証を追加したくない場合は、どうすればよいか教えてください。

4

2 に答える 2

2

私は同じ問題を抱えていましapplication/jsonた.Matt Staufferがここに示すように、Acceptヘッダーを指定する必要があるようです

さらにいくつかの注意事項:

  1. デフォルトの Accept ヘッダーは text/html に設定されているため、Laravel は URL にリダイレクトしようとします/loginが、おそらく PHP artisan をmake:auth行っていないため、ログイン ルートが見つかりません。
  2. ミドルウェアを削除すると、リクエストを認証しなくなるため機能します
  3. 一部のルートを認証するには、ミドルウェアとしてRoute::groupandを使用してそれらをグループ化するだけですauth:api
于 2016-12-29T21:16:02.303 に答える