Laravel密码哈希不正确

Laravel密码哈希不正确,laravel,laravel-5,laravel-6,Laravel,Laravel 5,Laravel 6,我正在尝试更新Laravel中的密码,密码正在更新,但当我尝试登录时,它会显示错误的详细信息,我不确定我在这里做错了什么 公共函数密码更新请求$request,$id { $user=user::find$id; //使用不正确的哈希更新列 $user->password=Hash::make$request->password; $user->setmembertokenstr::random60; $user->active=0;//此值正在正确更新 $user->save; 返回响应->j

我正在尝试更新Laravel中的密码,密码正在更新,但当我尝试登录时,它会显示错误的详细信息,我不确定我在这里做错了什么

公共函数密码更新请求$request,$id { $user=user::find$id; //使用不正确的哈希更新列 $user->password=Hash::make$request->password; $user->setmembertokenstr::random60; $user->active=0;//此值正在正确更新 $user->save; 返回响应->json['msg'=>'password updated']; } 正如我提到的,我的请求发布了一个空值,所以我添加了Ajax代码来解释原因

阿贾克斯

$。更新密码。在“单击”时,函数e{ console.log“已单击更新密码!” e、 防止违约; $.ajax{ 类型:POST,, 数据类型:“json”, 数据:$this.serialize, url:/users/+$'user_pwid'.val, 标题:{ 'X-CSRF-TOKEN':$'meta[name=CSRF TOKEN]'。属性'content' }, 成功:函数数据{ if data.msg{ $'response'。空; 美元.吐司.吐司'秀'; $'response'.appenddata.msg; } } }; }; 视图/刀片

@csrf 选择用户 @foreach$users作为$user {{$user->name} @endforeach $request->password是否实际具有预期的密码?你确定你没有在模型上写一个双重散列密码的变种子吗

您是否有充分的理由创建自己的密码重置控制器,而不是使用Laravel附带的密码重置控制器?另外-您确实不想用JSON将密码发送回用户。

尝试以下方法:

控制器代码:

public function passwordupdate(Request $request,$id) {
    $user = User::find($id);
    if(!is_null($user)){
        $user->password = Hash::make($request->password);
        $user->setRememberToken(Str::random(60));
        $user->active =0;
        $user->save();   
        return response('success'); 
    }
    else{
        return response('failed'); 
    }
}
Ajax代码:

$('#update-password').on('click', function(e) {
    e.preventDefault();
    $.ajax({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
    },
    type: "post",
    url: "/users/" + $('#user_pwid').val(),
    data :{
        password : $('#password').val(),

    },
    success: function (data) {
        if(data == 'success'){
            alert('password changed successfully');
            $('#response').empty();
            $(".toast").toast('show');
            $('#response').append(data);
        }
        else{
            alert('failed');
        }
    },
    });
});

试试这个,它会工作的

我现在正在测试,一旦我发现问题所在,响应就会不同,我正在尝试将来宾密码更新为admin,所以我创建了另一个控制器。“我并没有改变模型中的任何东西。”法亚肯肯定。让我知道并标记我的答案是否正确,如果它对您有帮助:谢谢,它成功了,您能告诉我我的代码有什么问题吗:@Fayakon实际上您使用serialize发送密码,并且您在控制器中直接作为请求访问密码。谢谢,如果我想添加复选框而不是密码文本字段,该怎么办,如何检查值是1还是0,例如我有复选框,当它被选中时,控制器应将密码重置为123456。这是为了检查您的复选框是否被选中::if$'idofcheckbox'.prop'checked'==trueComments不用于扩展讨论;这段对话已经结束。