Home >PHP Framework >Laravel >laravel implements app-side login

laravel implements app-side login

王林
王林Original
2023-05-26 11:43:071038browse

With the increasing number of smartphone applications, the demand for mobile application development is increasing day by day. User login has become one of the very important functions in mobile applications, because user login can not only protect the security of user information, but also facilitate users. Quickly access their information on different devices. Laravel is a popular PHP framework that provides many built-in functions and extension packages to help developers implement various functions of the application, including the login function on the APP side. This article will introduce how to use Laravel to implement the APP login function.

1. Installation and configuration of Laravel

Before starting to implement the APP login function in Laravel, you need to install and configure the Laravel environment. First, make sure you have installed the Composer tool (https://getcomposer.org/). Next, run the following command to install Laravel in your computer.

composer create-project --prefer-dist laravel/laravel myapp

Where "myapp" is the name of the Laravel application you want to create.

After the installation is complete, you can enter the myapp directory and run the following command to start a local development server.

php artisan serve

Visit http://localhost:8000 to see the Laravel welcome page. Next, you need to install and configure the Passport extension package to support the login function on the APP side.

Run the following command to install the Passport extension pack:

composer require laravel/passport

After the installation is complete, run the following command to generate the necessary Passport key:

php artisan passport:keys

Next, run the following command To generate Passport database migration:

php artisan migrate

2. Implement the APP login function

  1. Create user model and controller

First, you need to create a User model so that applications can manage users. Run the following command to create a model named User:

php artisan make:model User

Next, create a controller named AuthController and add the following code in it:

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use Validator;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $user = new User;
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = bcrypt($request->password);
        $user->save();

        $token = $user->createToken('MyApp')->accessToken;

        return response()->json(['token' => $token], 200);
    }

    public function login(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            $user = Auth::user();
            $token = $user->createToken('MyApp')->accessToken;
            return response()->json(['token' => $token], 200);
        } else {
            return response()->json(['error' => 'Unauthorized'], 401);
        }
    }
}

In the above code, The register method allows users to register, and the login method allows users to log in. If the user successfully registers or logs in, an access token is returned and is used for subsequent user requests.

  1. Create API routes

Next, you need to create corresponding API routes to handle user login and registration requests. In the routes/api.php file, add the following code:

<?php

use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;
use AppHttpControllersAuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);

The code above maps registration and login requests to the corresponding methods in the AuthController controller.

3. Test the login function

Now that all the code is ready, you can test the login and registration functions by accessing the following url.

  • POST /api/register

    • Register a new user. Parameters: name, email, password.
  • POST /api/login

    • Perform user login. Parameters: email, password.

#When the user logs in successfully, a token will be returned. This token can be used to make subsequent API requests to authenticate the user.

$token = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1In0.eyJhdWQiOiIxMSIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1IiwiaWF0IjoxNjMwMzkwNTM3LCJuYmYiOjE2MzAzOTA1MzcsImV4cCI6MTYzMDM5NDAzNywiZGF0YSI6eyJ1c2VyIjp7ImlkIjoiMSJ9fX0.XsIFsVCc3N1oZ70vzWn4wHQSv3Q-JVdlfu4LJkUPL0he_53bpgJrq5jw8mHygB-1-kpq62N7eG_r08fXKkmbiqeITmUiaGKa0prKzXCoexuYKuxYqG8j-HY2UyDp5g_TE6M4eW5FrcDpTJ0WcQ5ShDhdszUFQUH_qR52ypeEUmsF6CFwx1YJt4AmCFEy2CjsKOMl9K9o0mV_ytvBZ9drY6w6HTRfYfU7q5yuM-W3Qp6bbS-ljzY_2M0RWzwZJm6QvO3Byjhw1TNUrPHFs6xGlY4M7zgkDZxas5srQgpFjKof2LztN7QAJaiT_d6XAKpS24JA2-v2U7x3g';
$response = $this->withHeaders([
    'Authorization' => $token,
])->json('GET', '/api/user');

In this example, use token to send a GET request to /api/user, which will return the user's information. If the login is unsuccessful, the API will return a 401 error code. If the login is successful, the user's information will be returned.

It is very easy to use the Passport extension package in Laravel to implement the login function on the APP side. You only need to install and configure the corresponding extension package. In this article, we demonstrate how to use Laravel to complete a complete APP-side login function, achieving quick login and security protection for users.

The above is the detailed content of laravel implements app-side login. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:laravel array remove sameNext article:laravel array remove same