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

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

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

Laravel是一款流行的PHP Web開發(fā)框架,它提供了許多強(qiáng)大的功能和工具來(lái)簡(jiǎn)化Web應(yīng)用程序的開發(fā)和維護(hù)。Laravel Sanctum是Laravel框架的一個(gè)插件,它提供了API身份驗(yàn)證和授權(quán)的功能,可以輕松地保護(hù)您的API端點(diǎn)免受未經(jīng)授權(quán)的訪問(wèn)。

在本文中,我們將學(xué)習(xí)如何使用Laravel Sanctum實(shí)現(xiàn)API身份驗(yàn)證和授權(quán)。

一、什么是Laravel Sanctum?

Laravel Sanctum是一個(gè)輕量級(jí)的身份驗(yàn)證包,它提供了簡(jiǎn)單但強(qiáng)大的API身份驗(yàn)證和授權(quán)功能。它基于Laravel中間件和HTTP認(rèn)證,允許我們安全地將身份驗(yàn)證令牌附加到API請(qǐng)求中。

Laravel Sanctum支持兩種身份驗(yàn)證方式:基于Cookie的身份驗(yàn)證和基于Token的身份驗(yàn)證。基于Cookie的身份驗(yàn)證使用Laravel中間件來(lái)驗(yàn)證請(qǐng)求中是否存在有效的認(rèn)證Cookie。另一種驗(yàn)證類Header中的Token并檢查其是否有效。

二、安裝Laravel Sanctum

在開始之前,我們需要先安裝Laravel Sanctum。使用composer包管理器可以輕松地安裝Laravel Sanctum:

composer require laravel/sanctum

登錄后復(fù)制

當(dāng)然了,也可以通過(guò)在composer.json文件中添加以下要求來(lái)手動(dòng)安裝:

{
  "require": {
    "laravel/sanctum": "^2.9"
  }
}

登錄后復(fù)制

完成后,運(yùn)行以下命令來(lái)發(fā)布Laravel Sanctum配置文件和數(shù)據(jù)庫(kù)遷移文件:

php artisan vendor:publish --tag=sanctum-config
php artisan vendor:publish --tag=sanctum-migrations
php artisan migrate

登錄后復(fù)制

三、配置Laravel Sanctum

    首先,需要添加laravel / sanctum中間件到您的應(yīng)用程序的HTTP內(nèi)核中。

修改app/Http/kernel.php文件,添加Sanctum中間件:

// app/Http/Kernel.php

protected $middleware = [
    // ...
    LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
];

protected $middlewareGroups = [
    'web' => [
        // ...
    ],

    'api' => [
        LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ],
];

登錄后復(fù)制

這將確保在每個(gè)請(qǐng)求期間都可以使用Sanctum的基于Cookie的身份驗(yàn)證。

    接下來(lái),需要配置auth配置文件。

打開config/auth.php文件,找到defaults和guards并將它們配置為使用sanctum。

// config/auth.php

'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'sanctum',
        'provider' => 'users',
        'hash' => false,
    ],
],

登錄后復(fù)制

這將允許我們使用Sanctum進(jìn)行基于Token的身份驗(yàn)證。

    添加Sanctum提供者。

如果您使用的是新版本的Laravel,則不需要添加提供者。如果您使用的是舊版本,請(qǐng)打開config/app.php文件并在providers數(shù)組中添加以下行:

LaravelSanctumSanctumServiceProvider::class,

登錄后復(fù)制

四、創(chuàng)建授權(quán)令牌

現(xiàn)在,我們已經(jīng)配置了Laravel Sanctum,接下來(lái)我們將了解如何使用Sanctum來(lái)創(chuàng)建授權(quán)令牌。

    在用戶登錄后,在users表中為該用戶創(chuàng)建一個(gè)API令牌。
public function createToken(Request $request)
{
    $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]);

    if($user) {
        $token = $user->createToken('API Token')->plainTextToken;
        
        return response()->json([
          'token' => $token,
        ]);
    } else {
        return response()->json([
          'message' => 'Invalid credentials',
        ], 401);
    }
}

登錄后復(fù)制

    創(chuàng)建令牌后,您可以將其添加到每個(gè)請(qǐng)求的Authorization標(biāo)頭中。可以在axios請(qǐng)求中如下設(shè)置:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;

登錄后復(fù)制

五、實(shí)現(xiàn)API身份驗(yàn)證和授權(quán)

在創(chuàng)建了授權(quán)令牌后,我們可以使用Sanctum來(lái)保護(hù)API端點(diǎn)免受未經(jīng)授權(quán)的訪問(wèn)。我們可以使用Laravel路由中間件來(lái)檢查認(rèn)證令牌并拒絕未經(jīng)授權(quán)的訪問(wèn)。

    首先,在api.php文件中定義受保護(hù)的API路由。
// routes/api.php

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

登錄后復(fù)制

此路由將使用Sanctum auth中間件保護(hù)。

    接下來(lái),訪問(wèn)受保護(hù)的路由并查看結(jié)果。可以通過(guò)以下命令進(jìn)行測(cè)試:
php artisan serve

登錄后復(fù)制

現(xiàn)在,可以訪問(wèn) /api/user 路由以查看已登錄的用戶的詳細(xì)信息。現(xiàn)在,如果沒有授權(quán)標(biāo)頭,將不會(huì)能夠訪問(wèn)它并返回401未經(jīng)授權(quán)的HTTP狀態(tài)碼。

六、結(jié)尾

Laravel Sanctum是一個(gè)強(qiáng)大且易于使用的身份驗(yàn)證和授權(quán)解決方案,可以在Laravel Web應(yīng)用程序和Web API中輕松實(shí)現(xiàn)身份驗(yàn)證和授權(quán)。它可以輕松地保護(hù)您的API端點(diǎn)免受未經(jīng)授權(quán)的訪問(wèn),并使您可以輕松地控制哪些用戶可以訪問(wèn)哪些API端點(diǎn)。在這篇文章中,我們學(xué)習(xí)了如何安裝和配置Laravel Sanctum,并了解了如何使用它來(lái)創(chuàng)建授權(quán)令牌和實(shí)現(xiàn)API身份驗(yàn)證和授權(quán)。

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

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

網(wǎng)友整理

注冊(cè)時(shí)間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

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

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

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

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

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定