2014-10-04 121 views
1

我正在编写我的第一个Laravel API作为了解Laravel的项目。然而,这比我预想的要困难 - 尽管我先在laravel上写了一个完整的webapp。另外,我是新来的Stackoverflow,所以我希望我的问题是正确的。如何验证Laravel API?

我已经为我的API设置了路由,但现在我也想验证每个API请求。我已经设置了路由,可以在下面找到:

Route::group(['prefix' => 'api/v1', 'before' => 'basic.once'], function() 
{ 

    Route::resource('lessons', 'LessonsController'); 

    Route::get('lessons/user/{userid}', '[email protected]'); 

    Route::resource('user', 'UsersController'); 

    Route::get('user/lessons/{user}', '[email protected]'); 

    Route::get('user/lesson/{user}/{lesson}', '[email protected]'); 

}); 

我还为这两个过滤器:

Route::filter('auth.basic', function() 
{ 
    return Auth::basic(); 
}); 

Route::filter('basic.once', function() 
{ 
    return Auth::onceBasic('email'); 
}); 

然而,由于认证通过API的概念还是有点模糊,我,我不知道哪个滤镜是最适合这些的滤镜?

回答

0

如果这是一个API,你不会记录api发件人。

所以我将创建一个新的过滤器,并通过你的需要添加验证:

Route::filter('apiAuth', function() 
{ 
    $user = Input::get('user'); 
    $key = Input::get('key'); 
    if (!isset($user, $key)){ 
     die('error'); 
    } 
    if(!checkDataHere){ 
     die('error'); 
    } 
}); 

这是很基本的,但这是一般的想法