【问题标题】:Laravel User AuthenticationLaravel 用户认证
【发布时间】:2014-12-27 03:39:59
【问题描述】:

我关注了这个http://laravel.com/docs/4.2/security#authenticating-users

完成了我的表格,

当我尝试进行身份验证时,它总是失败,

我使用默认的用户模型和 auth.php 的用户表以及文档中的建议内容。我是否必须做除此之外的任何事情。

  $email = Input::get('email');
  $password = Input::get('password');       
  if (Auth::attempt(array('email' => $email, 'password' => $password)))
    {
        return Redirect::intended('dashboard');
    }

【问题讨论】:

  • “它总是失败”。这是您收到的实际错误消息吗?
  • 你能告诉我们你得到的错误信息吗?
  • @JosephSilber。啊,不是没有通过if条件,
  • @Teeyo:我没有收到错误消息,因为我不知道如何在这里抛出错误消息(所以我尝试只使用 return 语句)
  • 我担心我应该做其他事情而不是我所做的事情?

标签: php laravel laravel-4 laravel-validation


【解决方案1】:

您存储在表中的密码必须是散列值。 Laravel 需要它。但这甚至不应该是主要原因。密码需要经过哈希处理,因此没有人可以找出实际密码是什么。如果您认为您的数据库服务器是安全的并且没有人会获得访问权限,这并不重要。您的数据库总是有可能遭到破坏,在这种情况下,您不想保护用户密码。

查看this question on Security Stack Exchange 了解有关该主题的更多信息。

现在,这里有一种快速获取密码哈希版本的方法。 (没有注册表,显然需要这样做)。将此添加到routes.php

Route::get('hash/{value}', function($value){
    return Hash::make($value);
});

打开 url /hash/your-password 并将此字符串复制到数据库中的 password 字段中。

【讨论】:

  • 如果不对我的密码进行哈希处理,我就无法做到这一点?
  • 你不应该。如果您愿意,您需要做更多的工作或编写您自己的 Auth UserProvider。你为什么不想散列你的密码?
  • 好吧,那我来哈希我的密码,
  • 这样更好,相信我。
  • 是不是这样 $password = Hash::make('secret'); ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 2012-11-06
  • 2023-03-19
  • 2014-04-19
  • 2019-12-22
  • 2016-04-06
  • 2017-11-01
相关资源
最近更新 更多