2015-10-02 73 views
1

我正在使用Laravel構建一個API,這個API將被我的移動和Web應用程序使用。我對認證感到困惑。Laravel API認證

基本上,Web應用程序將由用戶在登錄狀態和訪問者狀態下使用。

認證在那種情況下如何工作?如果API使用用戶名/密碼來認證用戶,那麼訪客呢?

此外,我如何確保它向web API和移動應用程序提出請求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-middlewarehttp://laravel.com/docs/5.1/middleware

所以,現在發生的事情是,當您嘗試訪問/api/v1/protected,Laravel將運行api.auth中間件,讓用戶可以繼續前進。

api/v1/guest當然可以被認證的用戶和訪客用戶訪問,因爲沒有應用中間件。