当前位置: 首页 > 知识库问答 >
问题:

无法重写laravel默认身份验证用户名方法

汪典
2023-03-14

Laravel框架

我正在尝试将默认用户名验证检查从“email”更改为“id”,因此我将username()方法放在用户模型文件中以覆盖默认的username方法

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password','id'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function username()
    {
        return 'id';
    }

}

这对我不起作用。除非我从laravel供应商文件Illumb\Foundation\Auth\AuthenticatesUsers中更改它。php

 /**
     * Get the login username to be used by the controller.
     *
     * @return string
     */
    public function username()
    {
        return 'kocid';
    }

登录现在正在工作,但当我运行composer update时,文件将返回默认值,因此我需要一个解决方案来使用用户模型成功覆盖此方法。

共有2个答案

柴高岑
2023-03-14

username方法添加到您的LoginController以覆盖authenticateUsers特征(文档-用户名自定义)中的方法。

public function username()
{
    return 'id';
}
颛孙安康
2023-03-14

根据留档,https://laravel.com/docs/5.6/authentication#authentication-quickstart...you应该在你的LoginController中这样做。

public function username()
{
    return 'id';
}
 类似资料:
  • 我正在尝试配置laravel的auth以适合我的db。但无论我做什么,都会覆盖像或在LoginController中,它忽略所有内容。有人知道如何用不同的数据库参数化laravel的身份吗? 以下是我在LoginController中更改的内容: 在用户模型中: 编辑:config/auth.php: ]; LoginController: 名称空间App\Http\Controllers\Aut

  • LDAP的基础是什么?如果在配置期间没有给出任何基数。 我必须从基于web的应用程序验证/验证用户,并且我有java代码。 但是我需要为此建立基础(变量),我已经让另一个团队告诉我基础,他们说我们没有在LDAP上定制任何东西。LDAP的默认基数是什么?

  • 我使用下面的文章在我的laravel项目中创建JWT身份验证。但是现在我不能再使用Basic身份验证了。有没有办法使用基本身份验证?我需要它为我的网络界面。 https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps Route::get('auth/login','Auth\AuthC

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我试图通过Laravel发送电子邮件。但它正在出错 错误获取: 使用3个可能的身份验证器在用户名为“myEmailID@gmail.com”的SMTP服务器上进行身份验证失败。身份验证器登录返回Swift_TransportException:预期响应代码235,但得到代码“535”,消息“535-5.7.8用户名和密码不被接受”。在535 5.7.8https://support.google.

  • 我正在开发ASP NET核心Web API,对认证方式的选择感到困惑。我曾经应用默认的Asp Net身份验证,但最近我知道了JWT。因此,我几乎像本文中一样实现了身份验证:https://stormpath.com/blog/token-authentication-asp-net-core。但是我不能理解这个JWT的好处。通过简单的Asp Net身份认证,我不关心令牌存储等,我只需要用signI