【问题标题】:PHP Laravel auth is not working properlyPHP Laravel 身份验证无法正常工作
【发布时间】:2016-07-23 03:20:23
【问题描述】:

我的身份验证函数在我的 UserController 函数中总是返回 false,这是我的控制器函数。

public function postSignin(Request $request)
{
    $userdata = array(
        'email'      => $request->input('email'),
        'password'   => $request->input('password')
    );

    if (Auth::attempt($userdata))
    {
        return redirect()->route('user.profile');
    }
    else
    {
        return redirect()->back();
    }
}

这是我的路线代码

Route::post('/signin', [
    'uses' => 'UserController@postSignin' , 'as' => 'user.signin'
]);

当我输入凭据时,auth 的 if 部分不起作用,我会按照 else 条件的指示重定向到我的页面...

【问题讨论】:

  • 您是否为此使用了php artisan make:auth
  • 这可能与用户创建有关。创建用户时使用Hash::make()吗?

标签: php laravel authentication


【解决方案1】:

您可能会将用户密码以纯文本形式保存到数据库中,因为在使用 Auth::attempt() 函数时,laravel 会自动对密码进行哈希处理以进行比较。确保在插入时使用 bcrypt() 帮助函数正确散列密码。我能想到的唯一另一种可能性是,如果您确定输入了正确的密码或用户名?

创建新用户时的bcrypt示例:

User::create([
    "username" => $username,
    "password" => bcrypt($password);
]);

希望这会有所帮助!

【讨论】:

  • 我在创建用户时使用 bcrypt 功能,但它仍然无法正常工作。
猜你喜欢
  • 2016-11-09
  • 2017-05-10
  • 2015-12-01
  • 1970-01-01
  • 2016-10-25
  • 2018-07-24
  • 1970-01-01
  • 2014-11-17
  • 2012-10-20
相关资源
最近更新 更多