亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Laravel是一款流行的PHP Web開發框架,它提供了許多強大的功能和工具來簡化Web應用程序的開發和維護。Laravel Sanctum是Laravel框架的一個插件,它提供了API身份驗證和授權的功能,可以輕松地保護您的API端點免受未經授權的訪問。

在本文中,我們將學習如何使用Laravel Sanctum實現API身份驗證和授權。

一、什么是Laravel Sanctum?

Laravel Sanctum是一個輕量級的身份驗證包,它提供了簡單但強大的API身份驗證和授權功能。它基于Laravel中間件和HTTP認證,允許我們安全地將身份驗證令牌附加到API請求中。

Laravel Sanctum支持兩種身份驗證方式:基于Cookie的身份驗證和基于Token的身份驗證。基于Cookie的身份驗證使用Laravel中間件來驗證請求中是否存在有效的認證Cookie。另一種驗證類Header中的Token并檢查其是否有效。

二、安裝Laravel Sanctum

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

composer require laravel/sanctum

登錄后復制

當然了,也可以通過在composer.json文件中添加以下要求來手動安裝:

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

登錄后復制

完成后,運行以下命令來發布Laravel Sanctum配置文件和數據庫遷移文件:

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

登錄后復制

三、配置Laravel Sanctum

    首先,需要添加laravel / sanctum中間件到您的應用程序的HTTP內核中。

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

// app/Http/Kernel.php

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

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

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

登錄后復制

這將確保在每個請求期間都可以使用Sanctum的基于Cookie的身份驗證。

    接下來,需要配置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,
    ],
],

登錄后復制

這將允許我們使用Sanctum進行基于Token的身份驗證。

    添加Sanctum提供者。

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

LaravelSanctumSanctumServiceProvider::class,

登錄后復制

四、創建授權令牌

現在,我們已經配置了Laravel Sanctum,接下來我們將了解如何使用Sanctum來創建授權令牌。

    在用戶登錄后,在users表中為該用戶創建一個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);
    }
}

登錄后復制

    創建令牌后,您可以將其添加到每個請求的Authorization標頭中??梢栽赼xios請求中如下設置:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;

登錄后復制

五、實現API身份驗證和授權

在創建了授權令牌后,我們可以使用Sanctum來保護API端點免受未經授權的訪問。我們可以使用Laravel路由中間件來檢查認證令牌并拒絕未經授權的訪問。

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

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

登錄后復制

此路由將使用Sanctum auth中間件保護。

    接下來,訪問受保護的路由并查看結果??梢酝ㄟ^以下命令進行測試:
php artisan serve

登錄后復制

現在,可以訪問 /api/user 路由以查看已登錄的用戶的詳細信息?,F在,如果沒有授權標頭,將不會能夠訪問它并返回401未經授權的HTTP狀態碼。

六、結尾

Laravel Sanctum是一個強大且易于使用的身份驗證和授權解決方案,可以在Laravel Web應用程序和Web API中輕松實現身份驗證和授權。它可以輕松地保護您的API端點免受未經授權的訪問,并使您可以輕松地控制哪些用戶可以訪問哪些API端點。在這篇文章中,我們學習了如何安裝和配置Laravel Sanctum,并了解了如何使用它來創建授權令牌和實現API身份驗證和授權。

以上就是Laravel開發:如何使用Laravel Sanctum實現API身份驗證和授權?的詳細內容,更多請關注www.xfxf.net其它相關文章!

分享到:
標簽:API身份驗證 laravel Sanctum
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定