Laravel 5.2使用id而不是电子邮件登录

时间:2016-02-27 15:48:56

标签: php laravel laravel-5

目前我已经拥有默认的Laravel 5.2身份验证机制。我正在尝试更改它,以便用户可以使用id而不是电子邮件登录。我无法在控制器中使用username - 属性,因为我不希望用户选择id。我仍然希望通过自动增量分配并通过电子邮件发送给他。因此,我的注册表单应包含字段emailpasswordpassword_confirmation,我的登录字段为idpassword字段。 这有可能不重写整个事情吗?我真的很感激任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用attempt方法,请参阅下面的代码或 Sitemaps & Cross Submits

if (Auth::attempt(['id' => Request::input('id'), 'password' => Request::input('password')])) {
    // Your user is logged in.
}

答案 1 :(得分:0)

如果你去Illuminate \ Foundation \ Auth \ AuthenticatesUsers,你会看到laravel默认搜索字段电子邮件:

public function loginUsername()
{
    return property_exists($this, 'username') ? $this->username : 'email';
}

你可以在你的AuthController中覆盖它,如下所示:

protected $username = 'id';

希望这有帮助!