詳解laravel安裝使用Passport(Api認證)
Laravel通過傳統(tǒng)的登錄表單已經(jīng)讓用戶認證變得很簡單,但是API怎么辦?API通常使用token進行認證并且在請求之間不維護session狀態(tài)。Laravel使用Laravel Passport讓API認證變得輕而易舉,Passport基于Alex Bilbie維護的League OAuth2 server,可以在數(shù)分鐘內為Laravel應用提供完整的OAuth2服務器實現(xiàn)。
中文文檔
http://laravelacademy.org/post/6813.html
安裝
composer require laravel/passport
接下來,在配置文件 config/app.php 的providers 數(shù)組中注冊 Passport 服務提供者:
Laravel\Passport\PassportServiceProvider::class,
Passport 遷移將會為應用生成用于存放客戶端和訪問令牌的數(shù)據(jù)表 (遷移文件位置/vendor/laravel/passport/database)
php artisan migrate
創(chuàng)建生成安全訪問令牌時用到的加密密鑰及私人訪問和密碼訪問客戶端。
php artisan passport:install
Trait 添加到 App\User 模型中,這個 Trait 會給這個模型提供一些輔助函數(shù),用于檢查已認證用戶的令牌和使用作用于。
Laravel\Passport\HasApiTokens
然后在 AuthServiceProvider 的 boot 方法中添加 Passport::roues();
最后,修改文件 config/auth.php 中 api 部分的授權保護項( driver )改為 passport 。此調整會讓你的應用程序在接收到 API 的授權請求時使用 Passport 的 TokenGuard 來處理
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
增加測試路由
Route::group(['namespace' => 'api'], function () { Route::post('/login', 'UserController@login'); }); Route::group(['middleware' => 'auth:api', 'namespace' => 'api'], function() { Route::get('V1/test/passport', 'UserController@passport'); });
增加控制器
php artisen make:controller UserController
<?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Auth; class UserController extends Controller { public function __construct() { $this->content = array(); } public function login() { // dd(request('name')); if(Auth::attempt(['name' => request('name'), 'password' => request('password')])) { $user = Auth::user(); $this->content['token'] = $user->createToken('Pi App')->accessToken; $status = 200; } else { $this->content['error'] = "未授權"; $status = 401; } return response()->json($this->content, $status); } public function passport() { return response()->json(['user' => Auth::user()]); } }
通過postman進行簡單測試獲取token
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
PHP設計模式之裝飾器(裝飾者)模式(Decorator)入門與應用詳解
這篇文章主要介紹了PHP設計模式之裝飾器(裝飾者)模式(Decorator),結合實例形式詳細分析了PHP裝飾者模式的概念、原理、用法及相關操作注意事項,需要的朋友可以參考下2019-12-12php實現(xiàn)統(tǒng)計IP數(shù)及在線人數(shù)的示例代碼
這篇文章主要介紹了php實現(xiàn)統(tǒng)計IP數(shù)及在線人數(shù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07laravel框架select2多選插件初始化默認選中項操作示例
這篇文章主要介紹了laravel框架select2多選插件初始化默認選中項操作,結合實例形式分析了laravel框架select2多選插件的基本初始化、設置默認選中項等相關操作技巧,需要的朋友可以參考下2020-02-02