问题
I'm new in laravel, but i'm curious about multi auth laravel. I want to make some website which has two rules, customer and seller. But, i want they login use same login form. I try to use php artisan make:auth, but i don't understand how to use it in one controller use LoginController.php , From what i seen from many tutorials, it separated with different login form and controller. Like Customer login form and seller login form. Is it possible to make multi auth using one login form and one login controller only?
Thank you
回答1:
I think you can overwrite attemptLogin() method in your LoginController like this:
protected function attemptLogin(Request $request)
{
$customerAttempt = Auth::guard('customer')->attempt(
$this->credentials($request), $request->has('remember')
);
if(!$customerAttempt){
return Auth::guard('seller')->attempt(
$this->credentials($request), $request->has('remember')
);
}
return $customerAttempt;
}
回答2:
public function login(Request $request)
{
// Validate the form data
$validator = $this->validate($request, [
'email' => 'required|email',
'password' => 'required|string'
]);
// Attempt to log the customer in
if (Auth::guard('customer')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
// if successful, then redirect to their intended location
return redirect()->intended(route('Put_your_URL'));
} //attempt to log the seller in
else if (Auth::guard('seller')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
// if successful, then redirect to their intended location
return redirect()->intended(route('Put_your_URL'));
}
// if Auth::attempt fails (wrong credentials) create a new message bag instance.
$errors = new MessageBag(['password' => ['Adresse email et/ou mot de passe incorrect.']]);
// redirect back to the login page, using ->withErrors($errors) you send the error created above
return redirect()->back()->withErrors($errors)->withInput($request->only('email', 'password'));
}
来源:https://stackoverflow.com/questions/50514738/multi-auth-use-one-page-login-laravel