【问题标题】:modify auth code of laravel 5 as per my list of requirements根据我的要求列表修改 laravel 5 的身份验证代码
【发布时间】:2016-04-11 16:08:23
【问题描述】:

我有一个旧数据库,我想在其上使用新的 Laravel 5.2,我想将其用户身份验证代码更改为我的要求,例如 - 它的表名、用户名字段(它不是电子邮件字段)、它的密码,还需要阻止 laravel 加密密码,因为密码在数据库中没有加密,我还需要删除记住我选项,注册新用户等功能......谁能帮助/指导我。

用户和数据库的密码是相同的 - laravel 不会加密密码字符串。

在过去的 2 天里,我正努力在上述所有事情上取得成功。如果一件事是纠正,我会搞砸另一件事。特别是在密码检查的情况下 - 目前任何/错误的密码也将被允许作为用户 - 只有用户名需要是正确的。

提前感谢。

【问题讨论】:

    标签: laravel authentication laravel-5 laravel-5.1


    【解决方案1】:

    我假设你正在使用 Laravel 提供的 AuthController 类,你的用户模型类被称为 User 并且你正在使用 Eloquent用户提供者,因为它是默认的。

    为了更改存储用户的表的名称,您需要将以下内容添加到您的 User 类中:

    protected $table = 'your_table';
    

    如果您想将用于登录用户的列从电子邮件更改为另一列,您需要将以下代码添加到您的 AuthController

    protected $username = 'username';
    

    如果您不为这些操作定义路由,那么您的用户将无法注册,因此无需禁用它。

    为了禁用记住我的功能,您需要覆盖 User 模型的 setRememberToken() 并将其设为空。这样就不会为该用户保存记住我的令牌,这将阻止用户自动登录:

    public setRememberToken() {}
    

    【讨论】:

    • Thanx jedrzej.kurylo,我还需要 laravel 不检查散列密码。到目前为止,我已经通过在 laravel 框架中编辑 eloquentuserdriver 的核心文件本身解决了这个问题。
    • 这是可能的,但存储未加密的密码是一种非常糟糕的做法。你不能只是散列现有的密码吗?
    猜你喜欢
    • 2015-06-08
    • 2015-07-04
    • 1970-01-01
    • 2016-04-06
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2016-10-10
    相关资源
    最近更新 更多