2016-02-27 3 views
0

В настоящее время у меня есть механизм проверки подлинности Laravel 5.2 по умолчанию. Я пытаюсь изменить это, чтобы пользователь мог войти с идентификатором вместо электронной почты. Я не могу использовать атрибут username в своем контроллере, так как я не хочу, чтобы пользователь выбирал идентификатор. Я все еще хочу назначить это с помощью автоматического увеличения и отправить его ему по электронной почте. Таким образом, моя регистрационная форма должна иметь поля email, password и password_confirmation, а мой логин формирует поля id и password. Возможно ли это без переписывания всего этого? Я бы очень признателен за любую помощь. Благодаря!Laravel 5.2 Войти с идентификатором вместо email

ответ

0

Если вы идете в Осветить \ Foundation \ Auth \ AuthenticatesUsers вы увидите, что Laravel ищет в электронную почту поле по умолчанию:

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

Вы можете переопределить это в AuthController так:

protected $username = 'id'; 

Надеюсь, что это поможет!

+0

По какой-то причине я чувствовал, что не могу использовать это, потому что это повлияет и на регистрацию. Но, конечно, вы правы! Спасибо! – Sebastian

+0

Он не должен влиять на процесс регистрации, дайте ему попробовать и дайте мне знать. –

0

Вы можете использовать метод attempt, см. Код ниже или this link.

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