玩轉 Laravel 的 API - 一個簡單的註冊以及登入
IPFS
記錄一下,寫 API 還是拿 Laravel 來寫,因為 Laravel 與 Lumen 差不多
- API 的規劃
- 依循客戶的要求
- 寫程式,postman 測試是否有問題
- 結束第一段啦!
API 規劃
它的 API 的規劃,其實不是很好,他不是使用經常使用的 email 當成主要的 key,而是 UserID 來用,不過是業主提出來的,反正能跑就 OK 了
API 目前階段只有兩個,註冊以及登入,有的部分改了顯示的名稱
寫程式
就開始寫程式了,這裡用 app/Http/Controller/ApiController.php
<?php namespace App\Http\Controllers; use App\User; use App\Yazi; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use Validator; use App\Kategori; use Illuminate\Support\Facades\Hash; class ApiController extends Controller { public function login(Request $request) { if (Auth::attempt(['user_id' => request('UserID'), 'password' => request('UserPwd')])) { $user = Auth::user(); $token = $user->createToken('S8TvNFd6Pf1cCdQ7hkKNbcYER4UHVFir25nCTZAh')->accessToken; return response()->json(['errorFlag' => '0', 'token' => $token], 200); } else { return response()->json(['errorFlag' => '404'], 401); } } public function register(Request $request) { $validator = Validator::make($request->all(), [ 'UserName' => 'required', 'UserID' => 'required', 'UserPwd' => 'required', 'UserSchool' => 'required', 'UserGrade' => 'required' ]); if ($validator->fails()) { return response()->json(['errorFlag' => '404'], 401); } try { $user = User::create([ "name" => $request->UserName, "user_id" => $request->UserID, "password" => bcrypt($request->UserPwd), 'school' => $request->UserSchool, 'grade' => $request->UserGrade ]); } catch (\Exception $e) { return response()->json(['errorFlag' => '1'], 401); } return response()->json(['errorFlag' => '0'], 201); } }
然後修改 router/api.php
Route::post('/WA_SignIN', 'ApiController@login'); Route::post('/WA_SignUp', 'ApiController@register');
POSTMAN 測試註冊
- 使用者名稱:UserName
- 使用者 ID: UserID
- 使用者密碼:UserPwd
- 學校:UserSchool
- 班級:UserGrade
不過這不是以 Email 為主,它也沒有再一次確認密碼,所以這個做的有點奇怪,不過是業主要的方式,也就是 UserID 沒有重覆就註冊成功
- errorFlag: 0 ,表示通過
- errorFlag: 1 ,表示沒有通過

POSTMAN 測試登入
登入主要是 UserID, UserPwd,只要這兩個對,很快就有 token 已經 errorFlag

就這樣,完成註冊以及登入兩個 API,夠簡單吧!
Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!

- Author
- More