As an open source PHP web framework, Laravel has always been favored by web developers. Its powerful functions and ease of use are its advantages. For a web application, login is one of the very basic functions. In Laravel, we can quickly implement user login and jump.
Next, let’s talk about how to implement user login and jump in Laravel.
Before we start writing code, we first need to ensure the following conditions:
If you have not enabled Laravel's identity authentication function, you can enter the project root directory in the terminal and enter the following command:
php artisan make:auth
For Laravel projects that have turned on the identity authentication function, we can follow the following steps to implement it.
In Laravel, we can obtain the username and password entered by the user through a form. Generally speaking, we will set the Post method in the form and submit it to a controller called LoginController, as shown in the following code:
<form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">邮箱</label> <div> <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> </div> </div> <div> <label for="password">密码</label> <div> <input id="password" type="password" name="password" required autocomplete="current-password"> </div> </div> <div> <div> <div> <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label for="remember"> 记住我 </label> </div> </div> </div> <div> <div> <button type="submit"> 登录 </button> @if (Route::has('password.request')) <a href="{{ route('password.request') }}"> 忘记密码了? </a> @endif </div> </div> </form>
After the user fills in the form information, click the "Login" button , the data will be submitted to the LoginController controller.
We find the login method in the app/Http/Controllers/Auth/LoginController.php file and modify the content of the method as follows:
use IlluminateHttpRequest; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // 认证成功后的操作 } return back()->withErrors( ['email' => '用户名或密码错误'] ); }
In the above code, we first obtain the user form The data submitted is email and password. Next, we try to authenticate the user using the Auth::attempt() method. If the user authentication is successful, follow-up operations are performed in the if statement, otherwise an error message is returned, prompting the user that the user name or password is incorrect, and the login interface is reloaded.
After the user successfully logs in, we need to jump the user to the specified page. In Laravel, there are two implementation methods, as follows.
We can redirect to the specified page by adding the authenticated() method in the LoginController controller. This method will be called automatically after successful user authentication. The modified LoginController controller code is as follows:
use IlluminateHttpRequest; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('/home'); } return back()->withErrors( ['email' => '用户名或密码错误'] ); } protected function authenticated(Request $request, $user) { return redirect('/home'); }
In the above code, we can see the authenticated() method, which redirects the user to the /home page.
We can also implement redirection by registering a route after successful login. In the web.php file, we register the following route:
Route::get('/home', function () { return view('home'); })->name('home'); Route::group(['middleware' => 'auth'], function () { Route::get('/', function () { return redirect()->route('home'); }); });
In the above code, we registered the default root route / in the auth middleware. When the user logs in successfully, it will automatically redirect to /home page.
The above is the method for user login and jump in Laravel. The identity authentication function provided by Laravel provides great help for us to quickly implement user login. At the same time, through controllers and routing, we can also control user jumps in detail.
The above is the detailed content of laravel login jump. For more information, please follow other related articles on the PHP Chinese website!