2015-10-02 3 views
1

Я создаю API, используя Laravel, который будет использоваться как моими мобильными, так и веб-приложениями. Я смущен в отношении аутентификации.Laravel API Authentication

В основном веб-приложение будет использоваться пользователями как в состоянии входа в состояние, так и в посетителя.

Как работает аутентификация в этом случае? Если API использует имя пользователя/пароль для аутентификации пользователя, как насчет посетителей?

Кроме того, как я могу убедиться, что приложение webapp и мобильное приложение делает запрос API? Как я могу гарантировать, что кто-то не будет программным образом не обращаться к API и его только моим приложениям, которые могут запрашивать доступ к данным?

ответ

0

У вас есть файл маршрутов, и вы сможете применить фильтр (Laravel 4)/промежуточное ПО (Laravel 5) к этим маршрутам для их защиты. Предполагая, что вы используете L5 -

Route::group('api/v1', function() { 

    Route::group(['middleware' => 'api.auth'], function() { 
    Route::get('protected', function() { 
     return response()->json(['Authenticated Response'], 200); 
    }); 
    }); 

    Route::get('guest', function() { 
    return response()->json(['Guest Response'], 200); 
    }); 
}); 

Затем вы должны создать промежуточное программное обеспечение для api.auth - См http://laravel.com/docs/5.1/routing#route-group-middleware и http://laravel.com/docs/5.1/middleware

Так что же происходит сейчас, когда вы пытаетесь посетить /api/v1/protected, Laravel будет работать api.auth промежуточное программное обеспечение, прежде чем оно позволяет пользователю идти дальше.

api/v1/guest, конечно, будет доступен для пользователей, прошедших проверку подлинности, и гостевых пользователей, потому что не применяется промежуточное программное обеспечение.