Laravel设置为多重登录

时间:2014-04-13 11:12:16

标签: php laravel laravel-4

在这个框架中,我想使用多重登录,我的userAccount模型带有userAccount名称的定义表。

在下面Route我想使用userAccount模型和表进行登录

Route::post('accountAuth', array('as'=>'accountAuth', 'before'=>'csrf', function(){
    if ( Auth::attempt( array( 'username'=>Input::get('username'), 'password'=>Input::get('password') ) ) ){
        Return View::make('layouts.account.main');
    }
    else
        return Redirect::route('userLogin')
                ->with('message','ERROR')
                ->withInput();
}));

如何执行此操作以启用或使用多重登录?

1 个答案:

答案 0 :(得分:1)

如果使用控制器来帮助完成任务,您可以非常轻松地进行多重登录:

class LogonController extends Controller {

    public function adminLogin()
    {
        return $this->login('Admin');
    }

    public function accountLogin()
    {
        return $this->login('User');
    }

    public function login($model)
    {
        if ($user = $model::where('username', Input::get('username'))->first())
        {
            if (Hash::check($user->password, Input::get('password')))
            {
                Auth::login($user);

                return Redirect::to('/');
            }
            else
            {
                return Redirect::back()->withMessage('Wrong password.');
            }
        }
        else
        {
            return Redirect::back()->withMessage('User not found.');
        }
    }

}

然后你只需要为它创建不同的路线:

Route::post('admin', 'LogonController@adminLogin');

Route::post('login', 'LogonController@accountLogin');