【问题标题】:Save emails and passwords from unautorizades users Laravel 5保存来自非自动化用户 Laravel 5 的电子邮件和密码
【发布时间】:2016-10-05 13:53:54
【问题描述】:

我使用 php artisan make:auth 创建了登录 我读到我必须重写 AuthController.php 但是,我想重写 Login() 函数,但出现了一些错误。

我想修改这个文件,但我读到我做不到。

Illuminate\Foundation\Auth\AuthenticatesUsers.php

所以,我想覆盖使用 AuthenticatesUsers.php 的 AuthController.php,但我无法覆盖它。

简而言之,我想保存 unautorizades 用户的电子邮件和密码,但是我在哪里可以获得这些字段,。我创建了一个这样的模型。

namespace App;

use Illuminate\Database\Eloquent\Model;

class AccessHistory extends Model
{
    //
     protected $fillable = [
        'usuario_id', 'password','date_access','correct',
    ];
}

在登录之前如何获取这些字段? 我想问其他问题。我不知道我是否必须创建其他线程,但方式相同。 我想拥有 30 天后过期的密码,然后更改它。我该怎么做?

【问题讨论】:

  • 对于第二个问题,只需添加密码状态字段 1=active , 0= expiered ,然后将更新的 at 字段与当前时间进行比较,如果
  • 所以您想保存未授权用户的电子邮件地址和密码?您将如何获得这些信息?您为什么不直接要求他们注册,因为您会以这种方式获得信息...
  • 谢谢,是的,我是这么认为的,但问题是当我更改电子邮件或用户名时,他们会更改表中的 update_at 字段。我不知道是否有办法使用 laravel 安全或类似的东西。如果没有其他方法,我必须在用户表中添加一个新字段 update_password_at。
  • @James 感谢您的评论。这将是一个内部网系统。所以我必须保存所有登录活动,因为除了管理员之外没有人可以添加新用户。我们可以通过这种方式找到入侵者。
  • 那为什么不在你的所有路由上设置auth 中间件,这样所有用户都必须登录才能使用系统呢?然后您可以使用包或构建自己的方法来记录针对用户加载的每条路由。

标签: validation laravel email security laravel-5


【解决方案1】:

当尝试登录时,auth 层会触发事件。如果您想记录登录失败时使用的用户名和密码,则可以执行以下操作。

在你的EventServiceProviderboot 方法中添加:

$dispatcher->listen('auth.attempt', function ($credentials, $remember, $login) {
    AccessHistory::create([
        'email' => $credentials['email'], 
        'password' => $credentials['password']
    ]);
});

请注意,在此示例中,我假设您在登录表单中使用电子邮件。也有使用 EventServiceProvider 处理事件的替代选项。

您可以阅读有关从身份验证层here 触发的事件的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多