2014-09-23 2 views
1

Я хочу спросить вас, как выполнять аутентификацию по нескольким аутентификаторам в laravel с помощью ollieread? Вот мой код в 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 для Осветите \ Auth \ AuthManager :: createDriver(), называется в C: \ XAMPP \ HTDOCS \ laravelrental \ поставщика \ Laravel \ рамки \ src \ Illuminate \ Support \ Manager.php в строке 88 и определяется ".

Так как я исправил эту проблему?

ответ

3

В app/config/app.php заменить:

'Illuminate\Auth\AuthServiceProvider' 

к:

'Ollieread\Multiauth\MultiauthServiceProvider' 
+0

Я уже использую это .. но все еще не могу – user3796075

+0

Ошибка возникает, когда вы не удаляете поставщик 'Illuminate \ Auth \ AuthServiceProvider'' (еще раз прочитайте [руководство по установке] (https://github.com/ollieread/multiauth # установка)) –

0

Я обнаружил, что несколько людей (включая меня) были немного потеряны в то время, когда дело доходит до выяснения того, как использовать Олли Рид многопользовательской аутентификации. Ищете решение для многократной аутентификации, я нашел Ollie Read's 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' 
       ) 
     ) 
); 

Теперь, как я упоминал Auth все еще позволяет аутентифицировать против модели по умолчанию пользователя. Таким образом, можно было бы на самом деле использовать Auth для пользователей и auth2 для администратора в этом случае конфигурационный файл будет

обратный массив (

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

Вы можете проверить, что все работает нормально, используя PHP мастеровых подправлять.После того, как в Тинкер оболочки вы можете запросить файл конфигурации просто введя

Config::get('auth2') 

Или

Config::get('auth2.name') 

, чтобы увидеть различные варианты аутентификации, предлагаемые в файле конфигурации для конкретного имени, определенного (пользователь, администратор) , И так далее и т. Д. Для опций на нижних уровнях массива.

Надеюсь, что это поможет.

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