2013-02-21 5 views
0

У меня есть веб-приложение Laravel 4, в котором пользователи могут входить в систему и редактировать свой профиль.Аутентификация пакета Laravel

Я создал пакет API, который позволяет пользователю входить в систему со своим именем пользователя/паролем и получать дамп json своего профиля.

Теперь я не хочу, чтобы пользователи API использовали свое имя пользователя/пароль, но вместо этого использовали app_id/app_key из другой таблицы в базе данных.

Как это сделать с Laravel 4? Было бы замечательно, если бы я мог создать драйвер Auth, который работает так же, как и Auth:attempt(), поэтому мне не нужно менять какую-либо из моей бизнес-логики, но я не знаю, как добавить нового поставщика услуг Auth, который ТОЛЬКО работает внутри пакета API.

ответ

0

Вы можете изменить настройки Auth, где хотите. Вы можете создать фильтр в filters.php так:

Route::filter('api_auth', function() 
{ 
    Config::set('auth.table', 'api_table'); 
    // you can even change your model 
    // Config::set('auth.model', 'Apiuser'); 
}); 

И использовать перед любым маршрутом в routes.php так:

Route::get('user', array('before' => 'api_auth', function() 
{ 
    // some stuff 
})); 

Так что, вы можете использовать различные настройки и делать то, что хотеть.

BTW, я пробовал этот метод в Laravel 3, он работал. Я смотрел документы laravel 4, я не видел ничего, что могло бы помешать этой работе.

Смежные вопросы