立川企業社

立川創意工作室的創始者,同時也是 PHP 的 Laravel 框架的喜愛者,目前用 Voyager 套件用成後台,有了它至少減少約 40% 的時間做後台界面,喜愛它的就看看吧!

玩轉 Laravel 的 API - 一個簡單的註冊以及登入

記錄一下,寫 API 還是拿 Laravel 來寫,因為 Laravel 與 Lumen 差不多

  1. API 的規劃
  2. 依循客戶的要求
  3. 寫程式,postman 測試是否有問題
  4. 結束第一段啦!

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', '[email protected]');
Route::post('/WA_SignUp', '[email protected]');

POSTMAN 測試註冊

  • 使用者名稱:UserName
  • 使用者 ID: UserID
  • 使用者密碼:UserPwd
  • 學校:UserSchool
  • 班級:UserGrade

不過這不是以 Email 為主,它也沒有再一次確認密碼,所以這個做的有點奇怪,不過是業主要的方式,也就是 UserID 沒有重覆就註冊成功

  • errorFlag: 0 ,表示通過
  • errorFlag: 1 ,表示沒有通過

POSTMAN 測試登入

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

就這樣,完成註冊以及登入兩個 API,夠簡單吧!

CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

使用 Laragon 在 Windows 中建立 PHP 開發環境

OctoberCMS 專門以 Laravel 為主的 CMS

2

Want to read more ?

Login with one click and join the most diverse creator community.