今の私の最大の問題は、認証laravel 5.3でセッションベースの認証を行うためにどのように任意のアイデア
であるイムフェッチと使用してサーバにデータを送信するためのAPIを使用しているので、私の頭はこれについて痛みますVUE
ので、IVEはAUTHミドルウェアでログインことをやってみましたが、それは許可されていないが、でも私は
でそういただきました認証に問題とどのように私は、そのセッションベースの認証を実装することができますをログに記録することを言い続けましたか?
今の私の最大の問題は、認証laravel 5.3でセッションベースの認証を行うためにどのように任意のアイデア
であるイムフェッチと使用してサーバにデータを送信するためのAPIを使用しているので、私の頭はこれについて痛みますVUE
ので、IVEはAUTHミドルウェアでログインことをやってみましたが、それは許可されていないが、でも私は
でそういただきました認証に問題とどのように私は、そのセッションベースの認証を実装することができますをログに記録することを言い続けましたか?
APIとしてLaravelを使用している場合は、トークンベースの認証を行うことをお勧めします。主なアイデアは、デフォルトの 'web'ガード(congif/auth.php
でこれを変更できます)ではなく、 'api'ガード(TokenGuardクラスを使用)を使用することです。このようにして、Laravelは各リクエストのAuthorizationヘッダーにあるBearerトークンを探します。
This is a decent walk through私は確かにそこに他の多くの良いブログの記事とチュートリアルがあると確信しています。
EDIT:これは便利ですが、ここでは自動化されたテストを使用した例です
わからない場合。私のModelFactoryでは、api_token
属性を持つユーザーモデルがあり、ランダム(および一意の)60文字の文字列に設定されています。これは私がユーザーのリストを取得できることを確認するための簡単なテストです:私のconfig/auth.php
ファイルの先頭に
/** @test */
public function user_index_endpoint_returns_list_of_users()
{
$user = factory(User::class)->create();
$this->get('/users', array(
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $user->api_token
))
->assertResponseStatus(200)
->seeJsonStructure([
'users'
]);
}
、私は「API」に私のデフォルトのガードを設定しました:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
最後に、私のルートファイルでは、ユーザーのルートを設定して '認証'ミドルウェアを使用しました。
Route::group(['middleware' => 'auth'], function() {
Route::get('/users', '[email protected]');
});
私はLaravelは私の要求を認証しようとするTokenGuardクラスを使用します。舞台裏で、私のデフォルトとして「API」ミドルウェアを定義しましたので。これを行うために、私の要求でベアラトークンを探し、それをusersテーブルと比較します。
小さなスニペットでこれを行う方法を教えてください。これは私に頭の痛みを与えた –
私はいくつかの例のコードで私の答えに追加しました。それが役に立てば幸い! – jackel414