我正在编写我的第一个Laravel API作为了解Laravel的项目。但是,它比我想象的要困难 - 尽管我先在laravel中编写了一个完整的webapp。另外,我是Stackoverflow的新手,所以我希望我的问题是正确的。
我已经为我的API设置了路由,但现在我还要对每个API请求进行身份验证。我设置的路线可以在下面找到:
Route::group(['prefix' => 'api/v1', 'before' => 'basic.once'], function ()
{
Route::resource('lessons', 'LessonsController');
Route::get('lessons/user/{userid}', 'LessonsController@user');
Route::resource('user', 'UsersController');
Route::get('user/lessons/{user}', 'UsersController@lessons');
Route::get('user/lesson/{user}/{lesson}', 'UsersController@lesson');
});
我还为此创建了两个过滤器:
Route::filter('auth.basic', function()
{
return Auth::basic();
});
Route::filter('basic.once', function()
{
return Auth::onceBasic('email');
});
但是,由于通过API进行身份验证的概念对我来说仍然有点模糊,我不知道哪个过滤器最适合用于这些过滤器?
答案 0 :(得分: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');
}
});
这是非常基本的,但这是一般的想法