2014-09-23 73 views
1

我想問你如何使用ollieread在laravel中進行多認證登錄?這是我在auth.php登錄Multiauth在Laravel

'multi' => array(
    'account' => array(
     'driver' => 'eloquent', 
     'model' => 'users' 
    ), 
    'user' => array(
     'driver' => 'database', 
     'table' => 'admin' 
    ) 
), 
'reminder' => array(
    'email' => 'emails.auth.reminder', 
    'table' => 'password_reminders', 
    'expire' => 60, 
), 

然後代碼,這是我的控制器

function login() { 
    $attributes = \Input::get(); 
    \Auth::account()->attempt(array(
     'email' => $attributes['email'], 
     'password' => $attributes['password'], 
    )); 
    \Auth::user()->attempt(array(
     'email' => $attributes['email'], 
     'password' => $attributes['password'], 
    )); 
    \Auth::account()->check(); 
    \Auth::user()->check(); 
    return \View::make('superAdmin.login'); 
} 

public function authenticateAs($type, $user) { 
    $this->app['auth']->$type()->setUser($user); 
} 

}

我不明白它是如何定義$attributes。當我運行我的代碼,結果是

「缺少參數1照亮\驗證\ AuthManager :: createDriver(),稱爲 Ç :\ XAMPP \ htdocs中\ laravelrental \供應商\ laravel \框架\ src \照亮\ Support \ Manager.php 行88並定義「。

那麼我如何解決這個問題呢?

回答

3

app/config/app.php取代:

'Illuminate\Auth\AuthServiceProvider' 

到:

'Ollieread\Multiauth\MultiauthServiceProvider' 
+0

我已經使用..但仍然不能 – user3796075 2014-09-25 08:02:59

+0

當您不刪除'Illuminate \ Auth \ AuthServiceProvider''提供程序(再次閱讀[安裝指南](https://github.com/ollieread)/multiauth#安裝)) – 2014-09-25 08:15:27

0

我發現幾個人(包括我自己)是一個有時有點失落,當談到搞清楚如何使用奧利讀的多認證解決方案。尋找一個多重認證解決方案我遇到了Ollie Read的https://github.com/ollieread/multiauth,然後發現https://github.com/fhferreira/auth2 我個人會推薦後者,因爲這個包的設計是這樣的,服務提供商將創建一個Auth2(auth2.php)的實例。因此,與Ollie Read的解決方案不同,您仍然可以使用Auth(您會注意到,在另一個解決方案中,我們並沒有用另一個解決方案替換原始的AuthServiceProvider,但我們確實添加了一個新的MultiAuthServiceProvider以保留原始)。 我無法使用作曲家安裝此軟件包,但下載zip文件並將所有內容放置到位應該不會太困難。 當心我在代碼中發現了一個實際上阻止Auth2工作的錯字。在Collection.php上線51人應該更換

$providers = $this->config->get('auth2::auth2'); 

通過

$providers = $this->config->get('auth2.auth2'); 

假設您的配置文件是在配置/ auth2.php,你需要對兩個不同的表認證/模型這裏是你如何配置文件配置/ auth2.php應該像

return array(

     // example 
     'auth2' => array (
       'user' =>  array(
         'driver'  => 'eloquent', 
         'model'   => 'User', 
         'table'   => 'users' 
       ), 
       'admin' =>  array(
         'driver'  => 'eloquent', 
         'model'   => 'Admin', 
         'table'   => 'admins' 
       ) 
     ) 
); 

現在,正如我所說,它仍然驗證可以讓我們對默認的用戶模型進行驗證。因此,人們可以實際使用驗證用戶和Auth2爲管理員在這種情況下,配置文件將

回報陣列(

 // example 
     'auth2' => array (
       'admin' =>  array(
         'driver'  => 'eloquent', 
         'model'   => 'Admin', 
         'table'   => 'admins' 
       ) 
     ) 
); 

可以檢驗一切工作正常使用PHP工匠修補匠。一旦補鍋匠殼,你只需輸入

Config::get('auth2') 

或者

Config::get('auth2.name') 

查看由配置文件定義的特定名稱提供的不同身份驗證選項查詢配置文件(用戶,管理員) 。等等等等,以便選擇數組的較低級別的選項。

希望有所幫助。