日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

隨著RESTful API的普及和應(yīng)用的廣泛使用,越來越多的應(yīng)用程序需要對API進(jìn)行身份驗(yàn)證和授權(quán),因此API安全性已成為當(dāng)今軟件開發(fā)中極其重要的一個(gè)方面。Laravel Sanctum是Laravel 7.0引入的開箱即用的輕量級(jí)身份驗(yàn)證系統(tǒng),它旨在讓API身份驗(yàn)證變得簡單而安全。在本篇文章中,我們將介紹如何在Laravel中使用Sanctum來保證API的安全性。

    安裝Laravel Sanctum

在開始之前,我們需要確認(rèn)已經(jīng)安裝好Laravel 7.0+版本。然后我們可以使用composer安裝Laravel Sanctum依賴:

composer require laravel/sanctum

登錄后復(fù)制

安裝完Sanctum之后,在config/app.php文件中加入以下代碼:

'providers' => [
    // ...
    LaravelSanctumSanctumServiceProvider::class,
],

'aliases' => [
    //...
    'Sanctum' => LaravelSanctumSanctum::class,
]

登錄后復(fù)制

這樣,Laravel應(yīng)用程序就已經(jīng)使用了Sanctum提供的服務(wù)和功能。

    配置數(shù)據(jù)庫

接下來,在執(zhí)行數(shù)據(jù)庫遷移之前,我們需要設(shè)置Sanctum的數(shù)據(jù)庫表。 Larave lSanctum默認(rèn)提供了一個(gè)包含以下字段的personal_access_tokens數(shù)據(jù)庫表:

id:令牌的唯一標(biāo)識(shí)符tokenable_type:與令牌關(guān)聯(lián)的模型的類名tokenable_id:與令牌關(guān)聯(lián)的模型的IDname:令牌的名稱token:API令牌的值abilities:令牌的授權(quán)

在創(chuàng)建personal_access_tokens表之前,我們需要先創(chuàng)建模型關(guān)系。可以通過在AuthServiceProvider中注冊以下內(nèi)容來完成:

use LaravelSanctumSanctum;
//...

public function boot()
{
    $this->registerPolicies(); 

    Sanctum::ignoreMigrations();

    Sanctum::actingAs( null, [
        'superuser'
    ]);
}

登錄后復(fù)制

Sanctum::ignoreMigrations()用于阻止Laravel在artisan migrate命令中執(zhí)行Sanctum的數(shù)據(jù)庫遷移文件。但是,在大多數(shù)情況下,我們只是將其添加到數(shù)據(jù)庫遷移文件的命令中。Sanctum::actingAs()還提供了一種僅用于開發(fā)的方法,該方法在沒有用戶身份驗(yàn)證的情況下模擬用戶身份。

然后,我們需要運(yùn)行以下命令來創(chuàng)建personal_access_tokens表:

php artisan migrate

登錄后復(fù)制

    創(chuàng)建API令牌

Laravel Sanctum為我們提供了兩種方式來為API生成令牌。一種是CreateToken方法,該方法可以創(chuàng)建一個(gè)或多個(gè)包含可選名稱和授予權(quán)限的API令牌。這里我們介紹第二種方法,即使用hasApiTokens()函數(shù)配合createToken()函數(shù):

// use the HasApiTokens trait within your User Model
use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ...
}

// create a Token with User ID and given Abilities
$personalAccessToken = $user->createToken('API Token', ['server:get','server:post']);

登錄后復(fù)制

這里我們在用戶模型中使用了HasApiTokensTrait,以便在用戶模型中實(shí)現(xiàn)API令牌功能。我們使用createToken方法來創(chuàng)建一個(gè)API令牌,并在創(chuàng)建令牌時(shí)指定了一個(gè)可選的名稱和授權(quán)的權(quán)限鍵。

    保護(hù)API路由

有了API密鑰,我們就可以將其注入到每個(gè)請求中以進(jìn)行身份驗(yàn)證。我們可以在Laravel的路由文件中使用sanctum中間件來保護(hù)API路由,以便驗(yàn)證請求中的令牌:

// A Group of API routes that require a valid Token
Route::group(['middleware' => 'auth:sanctum'], function () {
    Route::get('/user', function (Request $request) {
        return $request->user();
    });
});

登錄后復(fù)制

在這段代碼中,我們定義了一個(gè)包含驗(yàn)證sanctum中間件的路由組。 路由組中包含一條路由,該路由僅需要一個(gè)有效的Token才能訪問。

    使用Bearer令牌

使用Bearer令牌是通過HTTP Authorization頭來發(fā)送API令牌的最常見方法。可以通過在請求頭中加入Authorization: Bearer {{$personalAccessToken->plainTextToken}}來授權(quán)令牌:

curl -H "Authorization: Bearer xxxxx" http://example.com/api/user

登錄后復(fù)制

    撤銷API令牌

最后,我們需要了解如何撤銷API令牌。我們可以使用tokens()->delete()函數(shù)來刪除某個(gè)用戶的所有API令牌,或使用revoke()函數(shù)來撤銷單個(gè)API令牌:

$user->tokens()->delete();

$personalAccessToken->revoke();

登錄后復(fù)制

結(jié)束語

現(xiàn)在我們已經(jīng)成功地實(shí)現(xiàn)了Sanctum身份驗(yàn)證來保護(hù)我們的API。Sanctum和Laravel提供了簡單而強(qiáng)大的API身份驗(yàn)證,這使得開發(fā)人員可以專注于構(gòu)建強(qiáng)大的API,并將主要的關(guān)注點(diǎn)放在業(yè)務(wù)邏輯上。在使用Sanctum時(shí),強(qiáng)烈建議您仔細(xì)閱讀官方文檔,這樣您就可以全面了解API的身份驗(yàn)證過程,并確保應(yīng)用程序具有最高的安全性。

以上就是Laravel開發(fā):如何使用Laravel Sanctum實(shí)現(xiàn)API身份驗(yàn)證?的詳細(xì)內(nèi)容,更多請關(guān)注www.xfxf.net其它相關(guān)文章!

分享到:
標(biāo)簽:API驗(yàn)證 laravel Sanctum
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定