2013-02-21 181 views
0

我有一個Laravel 4 Web應用程序,用戶可以在其中登錄和編輯其配置文件。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 
})); 

所以,你可以使用不同的設置和做什麼你想。

順便說一句,我試過這個方法在Laravel 3,它的工作。我看了laravel 4的文檔,我看不到任何阻止這項工作的東西。