本系列文的環境狀態,可點擊此連結後花園環境參考
[ 種花囉! ]章節的會員系統 CRUD 將會是用 Api 放 POSTMAN 測試,所以不會用美美的前端教學,在此先給大家打個預防針。
今天就先建設下我們要前往的路徑吧!
另外也會使用 Middleware 設置身份驗證通道,避免一朵花可以去玷污很多花( 使用者僅能更動自身資料,無他人資料更動權限 )。
檔案路徑位置:routes/api.php
<?php
use Illuminate\Http\Request;
// 註冊用
Route::post('/flower','FlowerController@store');
// 登入用
Route::post('/flower/login','FlowerLoginController@FlowerLogin');
// 預設 Flower 的 Middleware 驗證(透過 token ),讀取、修改、刪除、登出
// 有兩種方式,擇一使用,建議使用 方式一。
// 方式一:驗證群組化
Route::group(['middleware' => ['auth:api']], function(){
Route::get('/flower', 'FlowerController@show');
Route::put('/flower', 'FlowerController@update');
Route::delete('/flower/{api_token}', 'FlowerController@destroy');
Route::get('/flower','FlowerLogoutController@FlowerLogout');
});
// 方式二:驗證個別化
Route::get('/flower', 'FlowerController@show') ->middleware('auth:api');
Route::put('/flower', 'FlowerController@update') ->middleware('auth:api');
Route::delete('/flower/{api_token}', 'FlowerController@destory') ->middleware('auth:api');;
Route::get('/flower','FlowerLogoutController@FlowerLogout') ->middleware('auth:api');
檔案路徑位置:config/auth.php
在 guards 及 providers 內,新增 flower 的驗證方式及套用 eloquent model 。
<?php
return [
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'flower' => [
'driver' => 'token', // 使用 token 當作入門票
'provider' => 'flowers',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'flowers' => [
'driver' => 'eloquent', // 參照 eloquent 建立的 model
'model' => App\Flower::class, // 對應 app/Flower.php 檔案內的 class
],
],
];
過濾任何進入應用程式的 HTTP 請求,在進入路由前能先進行隔離保護,也可以進行請求或者回傳相關操作, Laravel 已內建些中介層( Middleware )的功能可以使用,如果沒有自己需求的功能,也能自行再撰寫出新的中介層來使用。
在路徑:app/Http/Kernel.php 內的中介層主要分兩種, 全域中介層 跟 路由中介層 ,此次使用的是路由中介層,只在被調用時使用,設定放置在 $routeMiddleware 屬性,另外 $middlewareGroups 屬性內有預設給 web 或 api 的路由群組中介層,利於一次作用多個中介層。
這篇就不放圖解析了,如果需要或疑問的話,可在底下留言,也歡迎前輩們留言提點。
想知道更多,請自行連結:
❁ Laravel官方-Middleware
❁ PHP Laravel 開發入門(四) – 路由(Routes)
❁ laravel 5.2 學習心得筆記 (完本)-middleware 中介層
❁ Laravel5.5 api token 用法
❁ 在LARAVEL APPS 內使用兩種AUTH進行登入驗證