我正在使用Laravel構建一個API,這個API將被我的移動和Web應用程序使用。我對認證感到困惑。Laravel API認證
基本上,Web應用程序將由用戶在登錄狀態和訪問者狀態下使用。
認證在那種情況下如何工作?如果API使用用戶名/密碼來認證用戶,那麼訪客呢?
此外,我如何確保它向web API和移動應用程序提出請求API?我如何確保某人不以編程方式訪問該API及其唯一可以請求訪問數據的應用程序?
我正在使用Laravel構建一個API,這個API將被我的移動和Web應用程序使用。我對認證感到困惑。Laravel API認證
基本上,Web應用程序將由用戶在登錄狀態和訪問者狀態下使用。
認證在那種情況下如何工作?如果API使用用戶名/密碼來認證用戶,那麼訪客呢?
此外,我如何確保它向web API和移動應用程序提出請求API?我如何確保某人不以編程方式訪問該API及其唯一可以請求訪問數據的應用程序?
您有一個路由文件,您將能夠對這些路由應用過濾器(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
當然可以被認證的用戶和訪客用戶訪問,因爲沒有應用中間件。