在postman的環境變量中先設置好一個用戶的token(事先你的數據庫里面要有用戶的這個數據),如下圖:
然后在api請求的url 的head頭部添加對應的token鍵名,value值用花括號{{token}}包住,就會自動獲取其值。
1、routes.php文件設置中間件路由,將你的控制器放在里面
Route::group(['middleware' => 'auth.api'], function () { Route::controllers([ 'check_lists' => 'CheckListsController', ]); });
中間件middleware文件目錄下創建AuthenticateApi.php
<?php namespace App\Http\Middleware; use Closure; use App\Models\User; use Illuminate\Support\Facades\Auth; class AuthenticateApi { public function handle($request, Closure $next) { $token = $request->header('Token'); if (! $token) { return \JSend::error('Missing Api Token.', 401); } $user = User::where('token', $token)->first(); if (! $user) { return \JSend::error('Invalid Api Token.', 401); } Auth::setUser($user); return $next($request); } }
在Kernel.php文件里面注冊該中間件。
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ ]; /** * The application's route middleware groups. * * @var array */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, ], 'api' => [ // 'throttle:60,1', ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ 'auth.api' => \App\Http\Middleware\AuthenticateApi::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, ]; }
接着,在url請求的控制器里面驗證下時候請求成功
<?php namespace App\Http\Controllers\Api; use App\Models\CheckList; use App\Models\User; use App\Models\Good; use App\Models\GoodCate; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class CheckListsController extends Controller { //添加檢查清單 public function postAddList(Request $request) { dd(auth()->user()->id);
成功獲取到該token對應的用戶的ID;