现有用户的登录身份验证对于laravel中的现有和不存在的用户无法正常工作

时间:2018-10-23 05:32:30

标签: laravel authentication

我在表中成功注册用户后正在使用自定义登录在登录面板上工作,而在以正确格式验证电子邮件和密码后尝试登录时却无法检查身份验证条件,因为我已经使用过身份验证库。 md5格式的密码,然后如何检查数据库中是否存在电子邮件和md5密码。目前只有其他部分正在执行以获取正确的凭据。

控制器代码:

public function login_student(Request $request){
$rules = array(
        'email' => 'required|email',
        'password' => 'required'
        );
         $validator = Validator::make(Input::all() , $rules);
          if ($validator->fails()) {
             return Redirect::to('log')->withErrors($validator)->withInput(Input::except('password'));  
          }else{
          $email = Input::get('email');
          $pass = md5($request->input['password']);
          if (Auth::attempt(['email' => $request->input('email'),'password' => $pass])) {
              echo "Welcome User";
              exit;
                } 
                else {
                echo "Please enter correct details to login";
                  exit;
             }
             }
       }

3 个答案:

答案 0 :(得分:0)

由于您使用了Auth库,因此Auth服务将处理密码的加密。

因此,您必须替换以下行:

$pass = md5($request->input['password']);

收件人:

$pass = $request->input('password');

答案 1 :(得分:0)

您尝试使用Auth :: guard()吗?

if (Auth::guard()->attempt(['email' => $request->email, 'password' => $request->password])) {

/////////////////
}

答案 2 :(得分:0)

尝试

$user = \App\Models\User::where([
        'email' => $request->email,
        'password' => md5($request->password)
    ])->first();

if ($user) {
   echo "Welcome User";
   exit;
} 
else{
   echo "Please enter correct details to login";
   exit;
}