gpt4 book ai didi

php - Laravel Auth 重复电子邮件

转载 作者:行者123 更新时间:2023-11-29 12:29:25 25 4
gpt4 key购买 nike

我正在使用 Laravel Auth 来允许人们登录。

现在我有一个数据库,人们可以在其中多次存在(对于较新的事件)

所以我想知道是否可以调整身份验证查询来检查最新的电子邮件地址,因此获取数据库中 ID 最高的电子邮件和密码组合

我似乎在照明结构中的任何地方都找不到查询。我是不是找错地方了?

Class guard {

好像有登录人的功能。谢谢!

最佳答案

您可以通过覆盖 Auth 驱动程序来实现。

创建自定义驱动程序: 1. 创建一个实现UserProviderInterface的新类 2. 在 app/start/global.php 中注册您的身份验证驱动程序,添加以下内容:

Auth::extend('auth.mydriver', function($app)
{
return new MyApp\Extensions\MyAuthDriver;
});
  • 告诉配置在 app/config/auth.php 中查找您的驱动程序并更改 'driver' => 'auth.mydriver',
  • 现在 Laravel 使用您的 Auth 实现。首先,我将复制原始代码并更改您想要提供自定义实现的方法

    编辑:

    如果你看看尝试如何工作,如果正常验证失败,它会调用retrieveByCredentials。如果您想覆盖 Guard 的方式,您必须创建自己的 Guard 类并使用它而不是默认的 (app/config/app.php)

    /**
    * Attempt to authenticate a user using the given credentials.
    *
    * @param array $credentials
    * @param bool $remember
    * @param bool $login
    * @return bool
    */
    public function attempt(array $credentials = array(), $remember = false, $login = true)
    {
    $this->fireAttemptEvent($credentials, $remember, $login);
    $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials);
    // If an implementation of UserInterface was returned, we'll ask the provider
    // to validate the user against the given credentials, and if they are in
    // fact valid we'll log the users into the application and return true.
    if ($this->hasValidCredentials($user, $credentials))
    {
    if ($login) $this->login($user, $remember);
    return true;
    }
    return false;
    }

    关于php - Laravel Auth 重复电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796419/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com