在laravel 5.4中切换用户

时间:2018-05-31 10:44:18

标签: laravel laravel-5.4 switch-user

我在laravel中切换用户并且我也成功了,但事实是当我成功登录后将用户重定向到仪表板后重定向到登录表单而不是我不知道我做错了什么。这是我正在使用的代码。

public function user_reauthenticate(Request $request) {
    $input = Input::all();
    $data = User::where('email', $input['email'])->first();
    if ($data) {
        if (Hash::check($input['password'], $data->password)) {
            Session::put('email', $input['email']);
            $newuser = Student::find($input['new_user']);
            session(['orig_user' => $data->id]);
            Auth::login($newuser);
            return Redirect::back();
        } else {
            $response = 'Wrong Credentials';
        }
    } else {
        $response = 'User does not exist';
    }
}

任何人都可以帮我找到问题,提前谢谢你。

2 个答案:

答案 0 :(得分:0)

被修改

您可以使用

登录
Auth::loginUsingId(1);

新编辑

// If you have the guard student and multiple auth
$auth = auth()->guard('student');
$objAuth = $auth->loginUsingId($input['new_user']);

//Single Auth

$objAuth = Auth::loginUsingId($input['new_user']);

答案 1 :(得分:0)

将此文件添加到文件顶部: - 使用Illuminate \ Foundation \ Auth \ AuthenticatesUsers;





然后添加 if 在您已完成的代码中的函数如下: -




  public function user_reauthenticate(Request $ request)
 {
使用AuthenticatesUsers;
 $ input = Input :: all();
 $ data = User :: where('email',$ input ['email']) - > first();
 if($ data){
 if(Hash :: check($ input ['password'],$ data-> password))
 {
 Session :: put('email',$ input ['email']);
 $ newuser = Student :: find($ input ['new_user']);
 session(['orig_user'=> $ data-> id]);
验证::登录($ NEWUSER);
 if($ this-> attemptLogin($ request))
 {
 return $ this-> sendLoginResponse($ request);
 }
 }
否则
 {
 $ response ='Wrong Credentials';
 }
 }
否则
 {
 $ response ='用户不存在';
 }
}
  




此方法覆盖此方法后如下: -


&#xA ;
 受保护的功能已验证(请求$ request,$ user)
 {
 return redirect() - > route('dashboard'); 
}
  




检查您的信息中心路线是否命名为信息中心或是否命名。