溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證

發(fā)布時(shí)間:2021-02-08 15:30:21 來源:億速云 閱讀:200 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了怎么在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\RegisterController.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來測試:

怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證

到些就大功告成了! 注意,這個(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:

怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證

上述內(nèi)容就是怎么在Laravel5.4中使用app接口實(shí)現(xiàn)Api Token認(rèn)證,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI