Laravel 5.2
新增了不少的新特性,包括了內置多用戶認證、表單數組輸入驗證、隱式路由模型綁定、中間件組的定義、中間件 throttle
訪問頻率限制等主要功能。php
即將發佈的 Laravel 5.3
也新增了很多新的特性:全局輔助函數 cache()
、查詢構造器 where / update
新增 JSON
屬性操做語法、Blade
模板新增 $loop
變量、更簡單的分頁實現、圖片尺寸驗證規則等。Laravel 5.3
相對於 Laravel 5.2
變化有點大,簡化了 app
的目錄結構,並將路由分離出來。web
本文主要介紹一下 Laravel 5.2
下使用 API Token Authentication
, Laravel 5.2
帶有了 TokenGuard
類。你可讓用戶的 api_token
追加到 API
請求的後面,並用 api_token
驗證請求,分爲 Laravel5.2
和 Laravel5.2
版本。api
api_token
字段並修改 User
模型你要先給你的 users
表添加 api_token
的字段。數組
// Laravel5.2 和 Laravel5.3 同樣 $table->string('api_token', 60)->unique();
若是你的項目剛建立,將上述的字段添加到 users_table migration
。app
若是你的項目並非新建立的,那麼你能夠去添加一個 migration
爲 users
表添加 api_token
字段。dom
在 User
模型中的 $fillable
、$hidden
添加 api_token
字段ide
// Laravel5.2 和 Laravel5.3 同樣 project $fillable = ['name', 'email', 'password', 'api_token']; project $hidden = ['password', 'remember_token', 'api_token'];
api_token
因爲 Laravel5.2
和 Laravel5.3
建立內置的用戶認證目錄結構不同,因此:Laravel5.2
:只需在 App\Http\Controllers\Auth\AuthController
中的 create
方法添加:Laravel5.3
:則在 App\Http\Controllers\Auth\RegisterController
中的 create
方法添加:函數
//將此代碼添加到建立用戶的數組中 'api_token' => str_random(60)
咱們要確保咱們全部的 API
都經過使用 auth:api
中間件保護。oop
Laravel5.2
:code
//將此代碼放置到路由中。 Route::group([ 'prefix' => 'api', 'middleware' => ['api', 'auth:api'] ], function () { //Write Routes });
Laravel5.3
:因爲 Laravel5.3
已將 api
的路由單獨分離出來,所以只需在 routes\api.php
中添加路由規則。路由組定義能夠到 app\Providers\RouteServiceProvider
中的 mapApiRoutes
方法查看。
經過在 auth
中間件後添加 :api
,告訴 Laravel
咱們想使用設置在 config/auth.php
下的 api
的 guard
和 默認爲 token
任何在 API
路由組的路由,全部的請求都須要驗證 api_token
。
User
記錄// Laravel5.2 和 Laravel5.3 同樣 Auth::guard('api')->user();
這樣的寫法是爲了讓 Laravel
知道,咱們想調用的是 api guard
,而不是調用默認的 web guard
本文參照API Token Authentication in Laravel 5.2
更多請關注PIGJIAN BLOG