2016-11-22 98 views
3

电子邮件/电话号码,我使用登录在Laravel验证()

Route::auth(); 

制作用户登录在Laravel。 有多个电话链接到用户并保存在表格中:电话。 表是 用户:ID,电子邮件,密码 电话:身份证,USER_ID,PHONE_NUMBER

如何使用户登录与两个邮件/电话和密码

+0

您可以验证数据库中的详细信息,然后可以使用Auth :: loginUsingId($ user_id);登录用户 – geekbro

+0

感谢@geekbro。试试这个 – dev21

+0

你试过使用'Auth :: basic('username')'? – jycr753

回答

0

App\Traits\Auth,创建一个名为LoginUser.php文件。

<?php 

namespace App\Traits\Auth; 

use App\User; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Validator; 

trait LoginUser 
{ 

    /** 
    * Handle a Authenticates the User. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function login(Request $request) 
    { 
     $this->validateLogin($request); 

     if ($this->attemptLogin($request)) { 
      return $this->successfulLogin($request); 
     } 
     return $this->failedLogin($request); 
    } 

    /** 
    * Validate the user login request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return void 
    */ 
    protected function validateLogin(Request $request) 
    { 
     $this->validate($request, [ 
      'username' => 'required', 
      'password' => 'required', 
     ]); 
    } 
    /** 
    * Attempt to log the user into the application. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return bool 
    */ 
    protected function attemptLogin(Request $request) 
    { 
     //Try with email AND username fields 
     if (Auth::attempt([ 
      'phone' => $request['username'], 
      'password' => $request['password'] 
      ],$request->has('remember')) 
      || Auth::attempt([ 
      'email' => $request['username'], 
      'password' => $request['password'] 
      ],$request->has('remember'))){ 
       return true; 
     } 
     return false; 
    } 

    /** 
    * This is executed when the user successfully logs in 
    * 
    * @var Request $request 
    * @return Reponse 
    */ 
    protected function successfulLogin(Request $request){ 
     return redirect($this->redirectTo); 
    } 

    /** 
    * This is executed when the user fails to log in 
    * 
    * @var Request $request 
    * @return Reponse 
    */ 
    protected function failedLogin(Request $request){ 
     return redirect()->back()->withErrors(['password' => 'You entered the wrong username or password']); 
    } 

} 

然后在

App\Http\Controllers\Auth

重写(或创建)LoginController.php并粘贴此

<?php 

namespace App\Http\Controllers\Auth; 

use App\Traits\Auth\LoginUser; 
use App\Http\Controllers\Controller; 

class LoginController extends Controller 
{ 
    use LoginUser; 

    /** 
    * Where to redirect users after registration. 
    * 
    * @var string | URL 
    */ 
    protected $redirectTo = '/mPanel'; 

    /** 
    * Displays login page 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function show(){ 
     return response()->view('LOGIN PAGE HERE'); 
    } 

} 

最后,在你的路由文件,添加这些路线:

Route::get('login', 'Auth\[email protected]'); 
Route::post('login', 'Auth\[email protected]');