2016-10-12 10 views
0

パスポートに関するlaracastビデオを見た後、私はパスポートがあればdelete.Supposeを、私は混乱に関するLaravel Passportはどのようにlaravel 5.3で動作しますか?

1.HowはGET、POSTのための認証要求を検証するためのパスポートを持っている私たち自身のapi.Stillを認証入れてするために使用されていることがわかります私はget urlでトークンを渡します。ユーザーは簡単にそのトークンを見て、使用することができます。

2.私のAPIを使用する特定のユーザーへのリクエスト数を制限できますか?

3.いずれかがアンドロイドアプリをデコードすると、それらはそのapiトークンを使用します。この場合、どのように保護することができますか?

いずれかが私の質問に間違っていると思われる場合forgive.Iはlaravel 5.3

にパスポートとAPIルーティングについてはあまり快適ではないですしてくださいはい、あなたがそれぞれのリクエストにトークンを渡すあなた

答えて

2
  1. ありがとうございます。ここで説明するように:https://laravel.com/docs/master/passport#passing-the-access-token
  2. はい、ミドルウェアを使用します。私はあなたがIlluminate\Routing\Middleware\ThrottleRequestsクラスで自分自身を刺激することをお勧めします。
  3. 特定のトークンが盗まれたことなどに気付いた場合は、そのトークンを更新することができます。ただし、client_idclient_secretをモバイルアプリに保存することは明らかに安全ではありません。
+0

@ Simon。答えは – iCoders

2

PassportはLeague OAuth2 serverの上に構築されていますので、Oauth2に関するセキュリティについては深く掘り下げて読んでみたいと思うなら、ここで質問の対象外です。シンプルにするために、サーバー上のLaravel 5.3、SSL/TLSの組み込み機能を使用して、アプリケーションとサーバーの間の通信を保護してください。本当に奇妙なことをしない限り、おそらく大丈夫でしょう。 OAuth2は本当に堅牢で、多くの主要プレイヤーが使用していますので、セキュリティについてはあまり心配しないでください。

あなたが認証の伝統的な方法に慣れているならば、それはScotch: The Ins and Outs of Token Based Authentication

にどのように動作するかを説明し、それについては本当に良い記事があるトークン各要求に渡すことのグリップを得るために少し奇妙かもしれません

ミドルウェアを使用してルートを保護することができます。パスポートは例、着信要求時にアクセストークンを検証し、認証ガードが含まれています

Route::get('/api/user', function() { 
    // 
})->middleware('auth:api'); 

任意のAPI要求者が要求を行うことができる速度を制限Laraelに建てられた速度制限があります。 デフォルトスロットルにある

Route::group(['prefix' => 'api', 'middleware' => 'throttle'], function() { 
    Route::get('user', function() { 
     return Person::all(); 
    }); 
}); 

:あなたが推測しているかもしれませんが、あなたはまたlaravelのために、それはあなたが使用することができ、スロットルミドルウェア、(接頭辞として/ APIと)のコード例ですが、このためのミドルウェアを使用する必要がありますユーザーが制限に達すると1分間に60回の試行を行い、アクセスを無効にします。

あなたはこのルートにリクエストを作る場合、あなたは今、レスポンスヘッダに以下の行が表示されます。

HTTP/1.1 200 OK 
... other headers here ... 
X-RateLimit-Limit: 60 
X-RateLimit-Remaining: 59 

あなたは10回に制限したい場合はもちろん、スロットルミドルウェアをカスタマイズすることができます毎分、これはあなたがそれを行うだろうかです:彼らはもう一度試すことができるまで

Route::group(['prefix' => 'api', 'middleware' => 'throttle:10'], function() { 
    Route::get('user', function() { 
     return User::all(); 
    }); 
}); 

あなたはまた、数分の量を決定する二番目のパラメータを追加することができ、あなたが「throtttle:10,10」どうなる代わりにを。

+0

@ Bobetaです。詳細な回答はありがとうございます.iは理解しようとします – iCoders

+1

あなたは歓迎されています。 ;) –

関連する問題