【问题标题】:Laravel hash check on requestLaravel 哈希检查请求
【发布时间】:2014-12-09 12:15:56
【问题描述】:

我正在尝试使用存储在我的数据库中的散列密码检查表单输入。但由于某种原因,检查运行在用户名而不是密码上。现在,我的问题是,我是否没有以正确的方式使用这些命令,或者我只是忘记了什么?这是我的代码:

在 route.php 中

Route::get('/{user}/confirm', 'PagesController@confirm');

在 PagesController.php 中

public function check(User $user)
{
    return view('users.check', compact('user'));
}

public function confirm(User $user, Request $request)
{
    echo "Input = " . $request->input('check');
    echo "<br>";
    echo "Password in DB = " . $user->password;
    echo "<br>";
    echo "Username = " . $user->username;

    if (Hash::check($request->input('check'), $user->password))
        {
            echo "<br>Correct Password.";
        } else {
            echo "<br>Incorrect Password.";
        }

最后,在 check.blade.php 中

@extends("master")  

@section("content")
<h2>Check User:</h2>
<h3 class="text-success">{{ $user->username }}</h3>

{!! Form::model($user, ['url' => '/' . $user->slug . '/confirm', 'method' => 'GET']) !!}

<div class="form-group">
<div class="row">
    <div class="col-xs-4">
        {!! Form::label('check', 'Password') !!}
        {!! Form::text('check', null, ['class' => 'form-control']) !!}
    </div>
</div>
</div>

<div class="form-group">
{!! Form::submit('Check Password', ['class' => 'btn btn-primary']) !!}
<a href="/" class="btn btn-primary">Cancel</a>
</div>

{!! Form::close() !!}


@stop

现在,在我的数据库中,我有一个名为 test 的用户,密码为 1234。如果我在检查密码字段中输入“1234”,我会得到“密码错误”。但是,如果我输入“测试”,它会返回“正确密码”。

我对编程还很陌生..可能值得一提。

【问题讨论】:

  • 我正在使用 Laravel 5,并且在创建用户时存储密码时使用 hash::make。所以是的,密码是散列的。

标签: php database laravel hash laravel-5


【解决方案1】:

一切似乎都是您使用与用户名相同的密码创建的用户。

您应该查看创建用户的方法,它应该是:

$user = new User();
$user->name = $request->input('name');
$user->password = Hash::make($request->input('password'));
$user->save();

我认为现在您创建用户的过程如下所示:

$user = new User();
$user->name = $request->input('name');
$user->password = Hash::make($request->input('name'));
$user->save();

所以您创建的 has 不是密码字段而是名称,这就是为什么 Hash::check 在您传递用户名时为真,在您传递密码时为假。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2017-04-28
    • 2013-07-20
    • 2015-05-27
    • 2011-05-19
    相关资源
    最近更新 更多