В настоящее время у меня есть механизм проверки подлинности Laravel 5.2 по умолчанию. Я пытаюсь изменить это, чтобы пользователь мог войти с идентификатором вместо электронной почты. Я не могу использовать атрибут username
в своем контроллере, так как я не хочу, чтобы пользователь выбирал идентификатор. Я все еще хочу назначить это с помощью автоматического увеличения и отправить его ему по электронной почте. Таким образом, моя регистрационная форма должна иметь поля email
, password
и password_confirmation
, а мой логин формирует поля id
и password
. Возможно ли это без переписывания всего этого? Я бы очень признателен за любую помощь. Благодаря!Laravel 5.2 Войти с идентификатором вместо email
0
A
ответ
0
Если вы идете в Осветить \ Foundation \ Auth \ AuthenticatesUsers вы увидите, что Laravel ищет в электронную почту поле по умолчанию:
public function loginUsername()
{
return property_exists($this, 'username') ? $this->username : 'email';
}
Вы можете переопределить это в AuthController так:
protected $username = 'id';
Надеюсь, что это поможет!
0
Вы можете использовать метод attempt
, см. Код ниже или this link.
if (Auth::attempt(['id' => Request::input('id'), 'password' => Request::input('password')])) {
// Your user is logged in.
}
По какой-то причине я чувствовал, что не могу использовать это, потому что это повлияет и на регистрацию. Но, конечно, вы правы! Спасибо! – Sebastian
Он не должен влиять на процесс регистрации, дайте ему попробовать и дайте мне знать. –