Laravel5.4簡單實現app接口Api Token認證方法

 更新時間:2019-09-08 18:01:47   作者:佚名   我要評論(0)

我是小白,今天寫這篇文章主要是給新手學習看的,大佬就不用看了,有很多不足望大家指出,共同進步。
在開發中許多 API 通常在返回響應之前都需要某種形式的認

我是小白,今天寫這篇文章主要是給新手學習看的,大佬就不用看了,有很多不足望大家指出,共同進步。

在開發中許多 API 通常在返回響應之前都需要某種形式的認證,有些時候,一個認證的請求和一個未認證的請求,響應可能不同。

在web項目中,實現認證比較輕松,那么前后端分離的項目中,我們要怎么實現認證,今天這篇文章就以 API token 認證機制,使用Token可以解決laravel API的無狀態認證。

一、給用戶表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

三、用戶注冊:

在注冊的控制器文件的創建用戶中添加 api_token 字段:

我這里的控制器是App\Http\Controllers\Api\RegisterController.php

protected function register(Request $request)
 {
  $input = $request->all(); //獲取傳過來的傳數 
 
 //在這里設置生成token后,與賬號密碼等信息一起存進User表
 
  $user = User::create($data); //存進數據庫
 return $token; 
 //這里面的邏輯自己寫 我這里只是簡單實現
}

最后,不要忘記在 App\User.php用戶模型表中的 $fillable 屬性當中添加api_token字段:

/**
  * The attributes that are mass assignable.
  *
  * @var array
  */
 protected $fillable = [
  'name', 'email', 'password','confirmation_token','api_token'
 ];

四、修改api driver:

接下來要在config\auth.php 修改如下內容:

'guards' => [
  'web' => [
   'driver' => 'session',
   'provider' => 'users',
  ],
 
  'api' => [
   'driver' => 'token', //把driver設置為token
   'provider' => 'users',
  ],
 ],

五、如何使用:

接下來,我們要添加路由,在routes\api.php文件修改:

Route::group(['middleware' => 'token'], function(){
 Route::post('register', 'API\[email protected]'); 
});

怎么訪問?我們這里用postman來測試:


到些就大功告成了! 注意,這個只是基礎認證,現在開發還是用別人已經開發好的插件好,比如oAuth2,basic,jwt,Passport等等。

哦對了,如果想看token的認證原理,我們可以看他的底層源碼

vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php:

這個我也看不明白,哈!再見!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

  • 詳解Laravel5.6 Passport實現Api接口認證
  • 詳解laravel安裝使用Passport(Api認證)
  • Laravel認證原理以及完全自定義認證詳解
  • 基于Laravel Auth自定義接口API用戶認證的實現方法
  • Laravel多用戶認證系統示例詳解
  • Laravel5.5中利用Passport實現Auth認證的方法
  • Laravel實現用戶多字段認證的解決方法
  • 通過修改Laravel Auth使用salt和password進行認證用戶詳解
  • Laravel 5框架學習之用戶認證

相關文章

  • vue.js+elementUI實現點擊左右箭頭切換頭像功能(類似輪播圖效果)

    vue.js+elementUI實現點擊左右箭頭切換頭像功能(類似輪播圖效果)

    1.效果圖如下 2.vue代碼如下 <el-carousel type="card" arrow="always" :loop="false" :initial-index="1" indicator-position="none" :autoplay="
    2019-09-08
  • Laravel5.4簡單實現app接口Api Token認證方法

    Laravel5.4簡單實現app接口Api Token認證方法

    我是小白,今天寫這篇文章主要是給新手學習看的,大佬就不用看了,有很多不足望大家指出,共同進步。 在開發中許多 API 通常在返回響應之前都需要某種形式的認
    2019-09-08
  • Yii框架實現對數據庫的CURD操作示例

    Yii框架實現對數據庫的CURD操作示例

    本文實例講述了Yii框架實現對數據庫的CURD操作。分享給大家供大家參考,具體如下: 首先要對數據庫進行操作,需要創建一個和數據庫表名相同的model,放在mode
    2019-09-08
  • Layui數據表格跳轉到指定頁的實現方法

    Layui數據表格跳轉到指定頁的實現方法

    1.獲取數據表格下分頁組件中的頁碼輸入框,具體元素在Elements中位置如下 2.獲取上述input并設置其value屬性值為目標跳轉頁面頁碼 $(".layui-laypage-skip
    2019-09-08
  • 使用Laravel中的查詢構造器實現增刪改查功能

    使用Laravel中的查詢構造器實現增刪改查功能

    引言 上一篇介紹了如何在windows環境下跑一個 laravel 項目,這一篇寫如何使用 laravel 中的 查詢構造器 實現增刪改查。 讀這篇文章時我默認你已擁有如下知識
    2019-09-08
  • React路由鑒權的實現方法

    React路由鑒權的實現方法

    前言 上一篇文章中有同學提到路由鑒權,由于時間關系沒有寫,本文將針對這一特性對 vue 和 react 做專門說明,希望同學看了以后能夠受益匪淺,對你的項目能夠
    2019-09-08
  • Yii框架分頁技術實例分析

    Yii框架分頁技術實例分析

    本文實例講述了Yii框架分頁技術。分享給大家供大家參考,具體如下: 直接上代碼: 1.首先寫控制器層 先引用pagination類 use yii\data\Pagination; 寫自
    2019-09-08
  • layer.js open 隱藏滾動條的例子

    layer.js open 隱藏滾動條的例子

    我就廢話不多說了,直接上代碼讓大家看看吧! $('img.echart-trand').click(function() { var host = $(this).data('host'); var role = $(this).data(
    2019-09-08
  • JavaScript基礎之this和箭頭函數詳析

    JavaScript基礎之this和箭頭函數詳析

    箭頭函數不會創建自己的this,它只會從自己的作用域鏈的上一層繼承this。 由于箭頭函數沒有自己的this指針,通過 call() 或 apply() 方法調用一個函數時,只
    2019-09-08
  • php中的鉤子理解及應用實例分析

    php中的鉤子理解及應用實例分析

    本文實例講述了php中的鉤子理解及應用。分享給大家供大家參考,具體如下: 鉤子的解釋 鉤子定義 鉤子是編程里一個常見概念,非常的重要。它使得系統變得非常容
    2019-09-08

最新評論

老快3投注技巧