【问题标题】:Laravel Authentication change column name [duplicate]Laravel 身份验证更改列名 [重复]
【发布时间】:2018-09-15 03:02:31
【问题描述】:

我想将 'users' 表中的列名 'email' 更改为 'username',laravel 框架使用它来验证用户。

我已经尝试了以下方法:

// LoginController.php
public function username()
{
    return 'username';
}

// User.php
public function getAuthIdentifierName() {
    return 'username';
}

但是,如果我发出 HTTP 请求以通过密码获取新令牌(请参阅此处:https://laravel.com/docs/5.6/passport#password-grant-tokens),它总是会返回一条错误消息,指出无法找到“电子邮件”列。

我必须更改/配置哪些文件才能完成这项工作?

谢谢

【问题讨论】:

  • 尝试更改 AuthenticatesUsers.php。即公共函数用户名(){返回'用户名'; }
  • @DPS 谢谢,但我已经通过在 LoginController.php 中添加函数 username() 来做到这一点
  • 您已覆盖 AuthenticatesUsers。您是否添加了使用 AuthenticatesUsers;在 LoginController.php 中
  • @JoseSilva 谢谢!现在它起作用了。我想知道为什么这不在 Laravel 官方文档中

标签: laravel authentication columnname


【解决方案1】:

回复here:

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ... some code

    public function findForPassport($username) {
        return $this->where('id', $username)->first();
    }
}

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2018-07-21
    • 2018-10-17
    • 1970-01-01
    相关资源
    最近更新 更多