如果我只需要使用user_name对用户进行身份验证,因为我不需要电子邮件和密码列,该怎么办
我的目标是在他们输入用户名时对其进行身份验证
嗯,也许您想编辑登录控制器并覆盖AuthenticatesUsers
中的功能登录>
public function login(Request $request) { $user = User::where('username', $request->username)->first(); if(Auth::login($user)){ return $this->sendLoginResponse($request); } return $this->sendFailedLoginResponse($request); }
您
LoginController
应该看起来像这样
class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = RouteServiceProvider::HOME; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } public function username() { return 'user_name'; } public function login(Request $request) { $user = User::where('user_name', $request->user_name)->first(); if(Auth::login($user)){ return $this->sendLoginResponse($request); } return $this->sendFailedLoginResponse($request); } }
不要忘记导入某些类,例如Request,用户模型和Auth
我在laravel 6.2中进行了测试,不确定是否是最好的方法,但希望这可以帮助您并告诉我您是否找到了最好的方法,反而]