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