laravel 實現app端登錄

隨著智能手機應用不斷增加,移動應用開發的需求日益增加,用戶的登錄已經成為移動應用中非常重要的功能之一,因為用戶的登錄不僅可以保護用戶信息的安全,還可以方便用戶在不同設備上快速的訪問他們的信息。laravel 是一款流行的 php 框架,它提供了很多內置的功能和擴展包來幫助開發者實現應用的各種功能,包括 app 端的登錄功能。本文將介紹如何使用 laravel 實現 app 端登錄功能。

一. Laravel 的安裝和配置

在開始實現 Laravel 中的 APP 端登錄功能之前,需要安裝和配置 Laravel 環境。首先需確保已經安裝 composer 工具(https://getcomposer.org/)。接下來,運行以下命令在你的計算機中安裝 Laravel。

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

其中,“myapp”是你想要創建的 Laravel 應用程序的名稱。

安裝完成后,可以進入 myapp 目錄并運行以下命令來啟動一個本地開發服務器。

php artisan serve

訪問 http://localhost:8000 可以看到 Laravel 的歡迎頁面。接著,需要安裝和配置 Passport 擴展包,以支持 APP 端的登錄功能。

運行以下命令來安裝 Passport 擴展包:

composer require laravel/passport

安裝完成后,運行以下命令來生成必要的 Passport 密鑰:

php artisan passport:keys

接下來,運行以下命令來生成 Passport 的數據庫遷移:

php artisan migrate

二. 實現 APP 端登錄功能

  1. 創建用戶模型和控制器

首先,需要創建一個用戶模型,以便應用程序可以管理用戶。運行以下命令來創建名為 User 的模型:

php artisan make:model User

接下來,創建一個名為 AuthController 的控制器,并在其中添加以下代碼:

<?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' =&gt; 'required',             'email' =&gt; 'required|email|unique:users',             'password' =&gt; 'required',         ]);          if ($validator-&gt;fails()) {             return response()-&gt;json(['error' =&gt; $validator-&gt;errors()], 401);         }          $user = new User;         $user-&gt;name = $request-&gt;name;         $user-&gt;email = $request-&gt;email;         $user-&gt;password = bcrypt($request-&gt;password);         $user-&gt;save();          $Token = $user-&gt;createToken('MyApp')-&gt;accessToken;          return response()-&gt;json(['token' =&gt; $token], 200);     }      public function login(Request $request)     {         $validator = Validator::make($request-&gt;all(), [             'email' =&gt; 'required|email',             'password' =&gt; 'required',         ]);          if ($validator-&gt;fails()) {             return response()-&gt;json(['error' =&gt; $validator-&gt;errors()], 401);         }          $credentials = $request-&gt;only('email', 'password');          if (Auth::attempt($credentials)) {             $user = Auth::user();             $token = $user-&gt;createToken('MyApp')-&gt;accessToken;             return response()-&gt;json(['token' =&gt; $token], 200);         } else {             return response()-&gt;json(['error' =&gt; 'Unauthorized'], 401);         }     } }

在上面的代碼中,register 方法允許用戶進行注冊,login 方法允許用戶進行登錄。如果用戶成功進行注冊或登錄,則會返回一個訪問令牌,該令牌將用于進行后續的用戶請求。

  1. 創建 API 路由

接下來,需要創建相應的 API 路由來處理用戶的登錄和注冊請求。在 routes/api.php 文件中,添加以下代碼:

<?php use IlluminateHttpRequest; use IlluminateSupportFacadesRoute; use AppHttpControllersAuthController;  Route::post('/register', [AuthController::class, 'register']); Route::post('/login', [AuthController::class, 'login']);

上面的代碼將注冊和登錄請求映射到 AuthController 控制器中的相應方法。

三. 測試登錄功能

現在,所有的代碼都已經準備好了,可以通過訪問以下 url 來測試登錄和注冊功能。

  • POST /api/register

    • 注冊新用戶。參數:name、email、password。
  • POST /api/login

    • 進行用戶登錄。參數:email、password。

當用戶登錄成功后,會返回一個 token。可以使用該 token 來進行后續的 API 請求,以便驗證用戶身份。

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

在這個例子中,使用 token 發送一個 GET 請求到 /api/user,該請求將返回用戶的信息。如果登錄不成功,API 將返回 401 錯誤代碼。如果登錄成功,則會返回用戶的信息。

Laravel 中使用 Passport 擴展包來實現 APP 端的登錄功能非常容易,只需要安裝并配置相應的擴展包即可。在本文中,我們演示了如何使用 Laravel 完成一個完整的 APP 端的登錄功能,實現了用戶的快速登錄和安全保護。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享