2017-02-01 19 views
0

Laravelsのデフォルト認証を使用してroutes/api.phpファイルのいくつかのパスをロックダウンします。Laravel 5.3とVueJS 2 Authenticating

Route::get('/projects', '[email protected]')->middleware('auth:api'); 

ユーザーは、Vue経由でのHTTPリクエストではなく、PHP形式でログインします。 これはセッションを作成し、私はVueの経由でHTTPリクエストを送信したとき、私は、ヘッダーがCookieとX-CSRFトークンが含まれていることを見ることができるしかし私は、APIのドライバセットを持って、私のconfig /認証では401 {"error":"Unauthenticated."}

を得続けます

私の理解と私がオンラインで読んだことは、デフォルトのLaravel auth機能を使ってVueからAPI呼び出しを達成できるはずです。 HTTPリクエスト。

私はJWTトークンを生成したときにユーザーがログインするローカルストレージにそれを格納することで認証する方法について読んだ
this.$http.get('/api/projects') 
    .then(response => { 
    this.projects = response.body; 
    }) 
    .catch (err => { 
    console.log(err); 
    }); 

が。これは私が使用する必要がある方法ですか私は、デフォルトでそれを達成することができるはずですLaravel Authミドルウェア?

私の質問が理にかなっていることを願って、助けとアドバイスをいただければ幸いです。

答えて

3

auth:apiミドルウェアは、getまたはBearer <token>ヘッダーを介して渡すことができるapi_tokenパラメータを使用して、クッキーを使用しません。 webミドルウェアを使用してください。

APIユーザーとブラウザユーザーの2つの方法で同じルートにアクセスする必要があるとします。なぜ、1つのアクションに2つのルートを作成しないのですか?

// api group with /api prefix 
Route::get('/projects', '[email protected]')->middleware('auth:api'); 

// web group 
Route::get('/projects', '[email protected]')->middleware('web'); 
+0

ありがとうございました@ shukshin.ivanは、私は物事を過度に複雑化していたようです。ユーザーがPHP経由で認証してセッションを設定するとき、Webルートで「API呼び出し」をグループ化しています。外部ソースからAPIにアクセスする必要がある場合は、auth:apiとtokenメソッドを使用します。 – patskot