laravel 5.4 passport驗證

1.在應(yīng)用目錄下執(zhí)行 php artisan make:auth php artisan migrate命令,生成用戶登錄和注冊的所有東西。

2.瀏覽器訪問 http://your-app.dev/register進行用戶注冊。

3.使用 Composer 包管理器安裝 Passport:

composer require laravel/passport

4.接下來,在配置文件config/app.php的providers數(shù)組中注冊 Passport 服務(wù)提供者:

Laravel\Passport\PassportServiceProvider::class,

Passport 服務(wù)提供著為框架注冊了自己的數(shù)據(jù)庫遷移目錄,所以在注冊之后需要遷移數(shù)據(jù)庫,Passport 遷移將會為應(yīng)用生成用于存放客戶端和訪問令牌的數(shù)據(jù)表:

php artisan migrate

5.接下來,需要運行passport:install命令,該命令將會創(chuàng)建生成安全訪問令牌(token)所需的加密鍵,此外,該命令還會創(chuàng)建“personal access”和“password grant”客戶端用于生成訪問令牌:

php artisan passport:install

運行完這個命令后,添加Laravel\Passport\HasApiTokenstrait 到App\User模型,該 trait 將會為模型類提供一些輔助函數(shù)用于檢查認證用戶的 token 和 scope:


namespace App;

use Laravel\Passport\HasApiTokens;

use Illuminate\Notifications\Notifiable;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable

{

use HasApiTokens, Notifiable;

}

接下來,你需要在AuthServiceProvider的boot方法中調(diào)用Passport::routes方法,該方法將會注冊發(fā)布/撤銷訪問令牌、客戶端以及私人訪問令牌所必需的路由


namespace App\Providers;

use Laravel\Passport\Passport;

use Illuminate\Support\Facades\Gate;

use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider

{

/**

* The policy mappings for the application.

*

* @var array

*/

protected $policies = [

'App\Model' => 'App\Policies\ModelPolicy',

];

/**

* Register any authentication / authorization services.

*

* @return void

*/

public function boot()

{

$this->registerPolicies();

Passport::routes();

}

}

最后,在配置文件config/auth.php中,需要設(shè)置api認證 guard 的driver選項為passport。這將告知應(yīng)用在認證輸入的 API 請求時使用 Passport 的TokenGuard:

'guards' => [

'web' => [

'driver' => 'session',

'provider' => 'users',

],

'api' => [

'driver' => 'passport',

'provider' => 'users',

],

],


6.密碼授權(quán)令牌

創(chuàng)建一個密碼發(fā)放客戶端

在應(yīng)用可以通過密碼授權(quán)頒發(fā)令牌之前,需要創(chuàng)建一個密碼授權(quán)客戶端,你可以通過使用帶--password選項的passport:client命令來實現(xiàn)。如果你已經(jīng)運行了passport:install命令,則不必再運行這個命令:

php artisan passport:client --password

通過postman或者其他調(diào)試工具,請求http://your-app.com/oauth/token進行授權(quán),授權(quán)成功返回想要的access_tokenhe 和refresh_token,最后測試。

'form_params' => [

'grant_type' => 'password',

'client_id' => 'client-id',

'client_secret' => 'client-secret',

'username' => 'taylor@laravel.com',

'password' => 'my-password',

'scope' => '',

],

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先說幾句廢話,調(diào)和氣氛。事情的起由來自客戶需求頻繁變更,偉大的師傅決定橫刀立馬的改革使用新的框架(created ...
    wsdadan閱讀 3,198評論 0 12
  • 校園失物招領(lǐng)平臺開發(fā) ——基于laravel框架構(gòu)建最小內(nèi)容管理系統(tǒng) 摘要 ? 針對目前大學(xué)校園人口密度大、人群活...
    藍蓮花xzsky閱讀 6,341評論 8 54
  • 前言 也可以關(guān)注我的個人博客 ?這里摘錄下laravel5.5教程的認證文檔,做個總結(jié),方便今后查閱。 安裝pas...
    小峰書閱讀 2,149評論 0 1
  • 過去做事情急,什么東西拿起來就用,不喜歡進行系統(tǒng)性的學(xué)習(xí),造成在使用過程中的錯誤和低效,現(xiàn)在感覺自己耐心多了,用之...
    馬文Marvin閱讀 2,082評論 0 10
  • 嗩吶聲咽 云雨把太陽隔開 紅房子,裝不下八十載風(fēng)雨 房外,不舍的嘈雜 房里,釋然已經(jīng)放下 擊打棺的柔荑,為何這么用...
    2b4c67af34a7閱讀 255評論 2 1

友情鏈接更多精彩內(nèi)容