亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

laravel如何與前端框架進(jìn)行Token認(rèn)證_Laravel前端Token認(rèn)證實(shí)現(xiàn)方法

穿越時(shí)空
發(fā)布: 2025-10-12 19:02:01
原創(chuàng)
798人瀏覽過(guò)
Laravel Sanctum實(shí)現(xiàn)Token認(rèn)證,通過(guò)安裝配置、生成Token、前端攜帶Bearer Token請(qǐng)求、路由保護(hù)及注銷刪除Token完成安全驗(yàn)證。

laravel如何與前端框架進(jìn)行token認(rèn)證_laravel前端token認(rèn)證實(shí)現(xiàn)方法

在Laravel中實(shí)現(xiàn)與前端框架(如Vue、React、Angular等)的Token認(rèn)證,通常使用API Token機(jī)制來(lái)保證用戶身份的安全驗(yàn)證。最常見的方式是通過(guò) Laravel Sanctum 或 Passport 來(lái)生成和管理Token。對(duì)于大多數(shù)前后端分離項(xiàng)目,Laravel Sanctum 是更輕量且合適的選擇。

1. 使用 Laravel Sanctum 實(shí)現(xiàn)Token認(rèn)證

Laravel Sanctum 為SPA(單頁(yè)應(yīng)用)、移動(dòng)端應(yīng)用以及簡(jiǎn)單API提供了簡(jiǎn)潔的API認(rèn)證方案。它通過(guò)為用戶發(fā)放多個(gè)API Token,并對(duì)每個(gè)Token設(shè)置作用范圍(abilities)來(lái)控制權(quán)限。

【安裝與配置】

首先,在Laravel項(xiàng)目中安裝 Sanctum:

  • 運(yùn)行命令:composer require laravel/sanctum
  • 發(fā)布配置文件和遷移:php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
  • 執(zhí)行數(shù)據(jù)庫(kù)遷移:php artisan migrate
【啟用API認(rèn)證中間件】

確保 app/Http/Kernel.php 中已注冊(cè) Sanctum 中間件:

立即學(xué)習(xí)前端免費(fèi)學(xué)習(xí)筆記(深入)”;

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
登錄后復(fù)制

該中間件會(huì)處理跨域請(qǐng)求中的Cookie狀態(tài),支持無(wú)狀態(tài)Token或基于Cookie的認(rèn)證。

2. 用戶登錄并生成Token

當(dāng)用戶登錄時(shí),后端驗(yàn)證賬號(hào)密碼后,為其創(chuàng)建Token并返回給前端。

【示例登錄接口】
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (!Auth::attempt($credentials)) {
        return response()->json(['message' => 'Invalid credentials'], 401);
    }

    $user = Auth::user();
    $token = $user->createToken('frontend-token')->plainTextToken;

    return response()->json([
        'access_token' => $token,
        'token_type' => 'Bearer',
        'user' => $user
    ]);
}
登錄后復(fù)制

前端收到 access_token 后,應(yīng)將其存儲(chǔ)在 localStorage 或內(nèi)存中,并在后續(xù)請(qǐng)求中攜帶至服務(wù)端。

3. 前端請(qǐng)求攜帶Token

前端每次請(qǐng)求API時(shí),需在請(qǐng)求頭中添加Token:

知我AI·PC客戶端
知我AI·PC客戶端

離線運(yùn)行 AI 大模型,構(gòu)建你的私有個(gè)人知識(shí)庫(kù),對(duì)話式提取文件知識(shí),保證個(gè)人文件數(shù)據(jù)安全

知我AI·PC客戶端0
查看詳情 知我AI·PC客戶端
Authorization: Bearer <your-access-token>
登錄后復(fù)制
【Axios 示例】
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
登錄后復(fù)制

也可在每次請(qǐng)求時(shí)單獨(dú)設(shè)置:

axios.get('/api/user', {
    headers: {
        'Authorization': 'Bearer ' + token
    }
});
登錄后復(fù)制

4. 保護(hù)API路由

routes/api.php 中使用 auth:sanctum 中間件保護(hù)需要認(rèn)證的接口:

use Illuminate\Http\Request;

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

    Route::post('/logout', function (Request $request) {
        $request->user()->currentAccessToken()->delete();
        return ['message' => 'Logged out'];
    });
});
登錄后復(fù)制

這樣只有攜帶有效Token的請(qǐng)求才能訪問(wèn)這些接口。

5. 注銷與刪除Token

用戶退出登錄時(shí),應(yīng)刪除當(dāng)前使用的Token以增強(qiáng)安全性。

// 刪除當(dāng)前Token
$request->user()->currentAccessToken()->delete();

// 或刪除所有Token
$request->user()->tokens()->delete();
登錄后復(fù)制

前端同時(shí)清除本地存儲(chǔ)的Token。

基本上就這些。Laravel Sanctum 提供了足夠簡(jiǎn)單又安全的方式來(lái)實(shí)現(xiàn)前端Token認(rèn)證,適合大多數(shù)前后端分離項(xiàng)目。只要前后端約定好Token傳遞方式,并妥善管理生命周期,就能實(shí)現(xiàn)穩(wěn)定可靠的認(rèn)證機(jī)制。

以上就是laravel如何與前端框架進(jìn)行Token認(rèn)證_Laravel前端Token認(rèn)證實(shí)現(xiàn)方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來(lái)源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)