2014-09-23 3 views
1

ollieread를 사용하여 laravel에서 다중 인증 로그인을 수행하는 방법을 묻고 싶습니다. 여기에 다음 로그인 Laravel의 Multiauth

'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, 
), 

auth.php

내 코드입니다, 이것은 내가 어떻게 $attributes을 정의 할 수 해달라고 내 컨트롤러

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); 
} 

}

입니다. \ XAMPP \ htdocs를 \ laravelrental \ 업체 \의 laravel의 \ 프레임 워크 : 난 내 코드를 실행할 때, 결과는

"를 분명히 \ 인증 \ AuthManager :: createDriver()에 대한 인수 1 누락, 이 C에서 호출했다 \ src \ Illuminate \ Support \ Manager.php 라인 88에 정의되어 있습니다.

어떻게이 문제를 해결 했습니까? app/config/app.php에서

답변

3

대체 :

'Illuminate\Auth\AuthServiceProvider' 

에 :

'Ollieread\Multiauth\MultiauthServiceProvider' 
+0

이미 사용하고 있지만 여전히 캔트 – user3796075

+0

'Illuminate \ Auth \ AuthServiceProvider'공급자를 제거하지 않으면 오류가 발생합니다 (다시 한번 읽음) [설치 가이드] (https://github.com/ollieread/multiauth # 설치)) –

0

내가 (자신 포함) 몇 사람들은 올리 읽기의 사용 방법을 알아 냈어에 관해서 조금 시간에 분실 사실을 발견했습니다 다중 인증 솔루션. 나는 여러 가지 인증 솔루션을 찾고 있는데요. Readly https://github.com/ollieread/multiauth 다음으로 https://github.com/fhferreira/auth2 이 패키지의 디자인은 Auth2 (auth2.php) 인스턴스를 생성 할 수 있도록 개인적으로 권장합니다. 따라서 Ollie Read의 솔루션과 달리 Auth를 사용할 수 있습니다 (다른 솔루션에서는 원래 AuthServiceProvider를 다른 AuthServiceProvider로 대체하지 않지만 실제로는 원래의 MultiAuthServiceProvider를 추가 함). 작곡가를 사용하여이 패키지를 설치할 수 없지만 zip 파일을 다운로드하고 모든 것을 설치하는 것이 너무 어렵지 않아야합니다. 실제로 Auth2가 작동하지 않도록하는 코드에서 오타가 있음을 발견했습니다. 라인 (51)에 Collection.php에서 하나의 설정 파일을 설정/auth2.php에 가정

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

에 의해

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

교체해야합니다 그리고 당신은 두 개의 서로 다른 테이블에 대해 인증 할 필요가/모델은 여기에 방법을 설정 파일 설정/auth2.php 내가 그것을 언급 한 바와 같이 이제 인증은 여전히 ​​우리가 기본 사용자 모델에 대해 인증 할 수 있습니다

return array(

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

처럼 보일 것입니다. 그래서 하나는 실제로이 경우 설정 파일이

반환 배열 (당신은 PHP는 장인 어설프게을 사용하여 제대로 작동 모두를 테스트 할 수 있습니다

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

될 것이라고 관리를위한 사용자 인증 및 Auth2를 사용할 수 있습니다.일단 어설프게 쉘에서 단순히 정의 된 특정 이름에 대한 설정 파일에서 제공하는 다른 인증 옵션을 보려면

Config::get('auth2') 

또는

Config::get('auth2.name') 

을 입력하여 설정 파일을 조회 할 수 있습니다 (사용자, 관리자) . 배열의 하위 레벨에있는 옵션에 대해서도 마찬가지입니다.

희망이 있습니다.