Laravel is an open source PHP Web framework that provides developers with many practical functions and convenient APIs, greatly shortening the development cycle and reducing development costs. In Laravel 5.3, the login function is encapsulated into an independent service, which can greatly enhance security and user experience. This article will introduce the login process of Laravel 5.3.
In Laravel 5.3, the application requires an authentication controller to handle login and logout. Controllers can be generated quickly using Artisan commands. Enter the following command in the terminal to generate the Auth controller:
php artisan make:auth
This command will generate view and controller files, which can be used to customize authentication logic.
In order to implement the authentication function, a corresponding user model is required. It can be generated through the Artisan command:
php artisan make:model User -m
This command will generate a user model file and a database migration file. It is recommended to name the user data table "users".
By default, Laravel 5.3 expects the user data table to have two fields: "email" and "password". If you want to use other fields for authentication, you need to define these fields in the user model. Open the app/User.php file and add the following content:
protected $fillable = [ 'name', 'email', 'password', ];
Laravel 5.3 has a built-in bcrypt hash encryption algorithm, which can hash the password. , thereby enhancing security. When registering a new user, you can use the following code to encrypt the password:
protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); }
Laravel 5.3 provides styles for the login and registration pages, which can be directly use. However, it can be customized as needed. In the resources/views/auth/login.blade.php file, you can add custom HTML and CSS code and render it using Laravel's Blade template engine.
For the login function, you need to define a POST route, which will contain the login form and the logic to handle form submission. In the routes/web.php file, add the following route:
Route::post('/login', 'Auth\LoginController@login');
This route will point to the login method of the Auth controller and handle the POST request for the login form.
In the Auth controller, you need to add the login method to handle the login request. This method will verify the credentials provided by the user and, if successful, redirect the user to the homepage of the application. Here is the sample code for the login method of the Auth controller:
public function login(Request $request) { $this->validate($request, [ 'email' => 'required|email|max:255', 'password' => 'required|min:6', ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials, $request->has('remember'))) { return redirect()->intended('/home'); } return redirect()->back() ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => 'These credentials do not match our records.', ]); }
In this method, the request is first authenticated using Laravel's validator class. After the verification is passed, the email and password fields will be obtained from the request. These credentials are then verified using the attempt method in the Auth class provided by Laravel. If the verification passes, the user is redirected to the home page of the application using Laravel's redirect method. If validation fails, the user is redirected back to the login page with an error message.
In Laravel, the logout function is very simple. You only need to call the logout method in the Auth class:
public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); return redirect('/login'); }
This method The Auth::logout method will be called, detaching the current user from the request and invalidating the session. Then, redirect the user to the application's login page.
Summary
In Laravel 5.3, implementing the login function is very simple. You only need to create an authentication controller, define the user model, write the login view, define the login route and process the login request. Using Laravel's powerful functions and convenient API, you can easily implement a safe and efficient login system.
The above is the detailed content of How to implement login function in laravel5.3 (process sharing). For more information, please follow other related articles on the PHP Chinese website!