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

时间:2016-12-13 10:10:39

标签: php laravel

Laravel Auth ::尝试功能总是失败。但我无法找到任何其他方法来验证用户或虚假代码...... 我检查了我的表格中的输入,并在下面的if条件中使用了echo(否则为part,因为真正的条件从未输入)。

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 :(得分:0)

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

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

}

答案 1 :(得分: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)值。

答案 2 :(得分:0)

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

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

所以:

componentDidMount() { this.refs.player.seek(this.props.currentTime); this.refs.player.subscribeToStateChange(this.handlePlayerStateChange); }