2014-09-23 74 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') 

查看由配置文件定义的特定名称提供的不同身份验证选项查询配置文件(用户,管理员) 。等等等等,以便选择数组的较低级别的选项。

希望有所帮助。