您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
一、給用戶表users增加api_token字段
php artisan make:migration add_api_token_to_users
首先,給用戶表中增加 api_token字段,在生成的遷移文件中添加字段:
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class AddApiTokenToUsers extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { $table->string('api_token', 64)->unique(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->dropColumn(['api_token']); //新增加的 }); } }
二、然后使用下面的命令將字段添加到表中:
php artisan migrate
三、用戶注冊:
在注冊的控制器文件的創(chuàng)建用戶中添加 api_token
字段:
我這里的控制器是App\Http\Controllers\Api\R
egisterController.php
protected function register(Request $request) { $input = $request->all(); //獲取傳過來的傳數(shù) //在這里設(shè)置生成token后,與賬號(hào)密碼等信息一起存進(jìn)User表 $user = User::create($data); //存進(jìn)數(shù)據(jù)庫 return $token; //這里面的邏輯自己寫 我這里只是簡單實(shí)現(xiàn) }
最后,不要忘記在 App\User.php
用戶模型表中的 $fillable
屬性當(dāng)中添加api_token
字段:
/** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password','confirmation_token','api_token' ];
四、修改api driver:
接下來要在config\auth.php 修改如下內(nèi)容:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', //把driver設(shè)置為token 'provider' => 'users', ], ],
五、如何使用:
接下來,我們要添加路由,在routes\api.php文件修改:
Route::group(['middleware' => 'token'], function(){ Route::post('register', 'API\UserController@register'); });
怎么訪問?我們這里用postman來測試:
到些就大功告成了! 注意,這個(gè)只是基礎(chǔ)認(rèn)證,現(xiàn)在開發(fā)還是用別人已經(jīng)開發(fā)好的插件好,比如oAuth3,basic,jwt,Passport等等。
哦對了,如果想看token的認(rèn)證原理,我們可以看他的底層源碼
vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php:
上述內(nèi)容就是怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。