2016-10-27 43 views
0

我目前正在做一个项目。在这我希望用户登录他的电子邮件或用户名,但坚持在这一点,因为我不能这样做。我希望如果用户提供他的电子邮件或他的用户名和密码,他可以登录到他的面板。我使用的是laravel 5.3的默认功能。我在laravel 5.1中这样做,但在5.3中不能这样做。请帮忙。用户名和邮箱完全登录laravel 5.3

回答

0

您可以通过覆盖Auth\LoginController.php中的login()方法来做到这一点。只是检查,如果凭据有效,并且这样做:

return $this->sendLoginResponse($request); 

例如:

if (Hash::check($request->password, $passwordFromDB) && ($request->username == $usernameFromDB || $request->email == $emailFromDB)) { 
    return $this->sendLoginResponse($request); 
} 

return $this->sendFailedLoginResponse($request); 
+0

如果我添加此它给了我错误'FatalThrowableError在LoginController.php线42: 解析错误:语法错误,意想不到的'return'(T_RETURN),期待函数(T_FUNCTION)' –

+0

@JahidMahmud,你不应该只是添加它。您应该重写'login()'控制器并在其中添加凭证检查。如果这些凭据是有效的,那么只有这样你才能执行'return $ this-> sendLoginResponse($ request);' –

+0

但是我该怎么做? @AlexeyMezenin。我试过了,但它只给我登录电子邮件或用户名,如果你想保留一些标准功能或者创建'login()'方法,你只需要登录电子邮件或者用户名,不要同时登录 –