隨著智慧型手機應用程式不斷增加,行動應用程式開發的需求日益增加,用戶的登入已成為行動應用程式中非常重要的功能之一,因為用戶的登入不僅可以保護用戶資訊的安全,還可以方便用戶在不同設備上快速的存取他們的資訊。 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 端登入功能
首先,需要建立一個使用者模型,以便應用程式可以管理使用者。執行以下命令來建立名為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' => '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); } } }
在上面的程式碼中, register 方法允許使用者進行註冊,login 方法允許使用者進行登入。如果使用者成功進行註冊或登錄,則會傳回一個存取令牌,該令牌將用於進行後續的使用者請求。
接下來,需要建立對應的 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
POST /api/login
當使用者登入成功後,會回傳一個 token。可以使用該 token 來進行後續的 API 請求,以便驗證使用者身分。
$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');
在這個例子中,使用 token 發送一個 GET 請求到 /api/user,該請求將傳回使用者的資訊。如果登入不成功,API 將傳回 401 錯誤代碼。如果登入成功,則會傳回使用者的資訊。
Laravel 中使用 Passport 擴充包來實現 APP 端的登入功能非常容易,只需要安裝並配置相應的擴充包即可。在本文中,我們示範如何使用 Laravel 完成一個完整的 APP 端的登入功能,實現了使用者的快速登入和安全保護。
以上是laravel 實作app端登錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!