2016-10-12 4 views
0

После просмотра laracast видео, связанным с паспортом, я понял, что паспорт используется для аутентификации собственного api.Still у меня есть путаница в отношении паспортаКак работает Laravel Passport в laravel 5.3?

1.How для подтверждения запроса аутентификации для GET, POST, PUT и delete.Suppose если я передаю токен в моем получателе, пользователь может легко увидеть и использовать этот токен.

2. Могу ли я ограничить количество запросов конкретным пользователем, чтобы использовать мой api?

3.Если какой-либо декодировать приложение для Android, они используют этот токен. В этом случае мы можем защитить?

если думать не так в моем вопросе пожалуйста forgive.I я не очень комфортно паспорта и маршрутизации апи в Laravel 5,3

Спасибо

ответ

2
  1. Да вы передаете свой маркер на каждый запрос. Как описано здесь: https://laravel.com/docs/master/passport#passing-the-access-token
  2. Да, вы сделали бы это с помощью промежуточного программного обеспечения. Я предлагаю вам вдохновить себя классом Illuminate\Routing\Middleware\ThrottleRequests.
  3. Вы можете обновить определенный токен, если заметите, что он был украден или что-то в этом роде ... Но в мобильном приложении явно небезопасно хранить client_id и client_secret.
+0

@ Simon.Спасибо за ответ – iCoders

2

паспорт построен на вершине 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'); 

Там является ограничивающим скорость, построенный в Larael, что ограничивает скорость, при которой любой API, запрашивающий может сделать запросы. Как вы уже догадались, вы должны также использовать промежуточное программное обеспечение для этого, для Laravel это промежуточное дросселем, который можно использовать, например, код (с/API в качестве префикса):

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

по умолчанию дроссельной заслонки в 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.Спасибо за подробный ответ. Я постараюсь понять – iCoders

+1

. Добро пожаловать, он прорвется и со временем станет понятным, просто оставайтесь последовательными! ;) –

Смежные вопросы