首页 文章

Laravel Auth :: attempt()失败,laravel 5.3

提问于
浏览
0

Laravel Auth ::尝试功能总是失败 . 但我找不到任何其他方法来验证用户或错误的代码...我检查了我的表格中的输入,如下条件中的回声(否则部分,因为真正的条件从未输入) .

public function postSignIn(Request $request)
{
    $email=$request['email'];
    $password=$request['password'];
    $remember=$request['remember'];

   if(Auth::attempt(['email' => $email, 'password' => $password])){
        return redirect()->route('dashboardStart');
   }
        return redirect()->back();

}

密码由普通的laravel散列函数进行散列并保存到数据库中 .

$pw=Hash::make($pw1);

存储pw和电子邮件

$user->Email=$email;
    $user->Password=$pw;
   //writes the data to the DB
    $user->save();

所以,希望有人能帮助我 .

编辑2:

好吧,这很疯狂......我更改了验证功能,并使用正常的php函数验证电子邮件和密码,条件为真......

if(($email===$userDBEntry['Email'])&&password_verify($password,   $userDBEntry['Password'])){
        return redirect()->route('dashboardStart');
   }
        return redirect()->back();

3 回答

  • 0

    您正在使用 Illuminate\Http\Request 并将其放入函数 postSignIn(Request $request) .

    从Request对象检索电子邮件/密码的正确方法是在将其传递给 Auth::attempt 时调用 $request->email 而不是 $request['email'] .


    所以:

    $email=$request['email']; // make it $request->email $password=$request['password']; // make it $request->password $remember=$request['remember'];

  • 0

    我认为你没有正确地接受输入请求不是数组它是一个函数所以调用函数来获取输入

    public function postSignIn(Request $request)
    {
       if(Auth::attempt( $request->only(['email','password']) ){
            return redirect()->route('dashboardStart');
       }
            return redirect()->back();
    
    }
    
  • 0

    你可以检查一下 $password$email 我同意Sam,你应该使用Request对象的方法来访问属性,比如

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

    更多关于documentation .

    编辑:关于尝试什么的2个更多的想法...验证你在数据库中确实有这个用户(如果它不存在,那么在某个地方存在保存/注册过程的问题)

    尝试改变

    $pw=Hash::make($pw1);
    $user->Email=$email;
    $user->Password=$pw;
    

    $user->email=$email;
    $user->password=$pw1;
    

    并且还验证您是否正如您所期望的那样获得$ email和$ pw(或$ pw1)值 .

相关问题