Rumah >pembangunan bahagian belakang >tutorial php >Pengesahan keselamatan PHP dengan Laravel Sanctum

Pengesahan keselamatan PHP dengan Laravel Sanctum

王林
王林asal
2023-07-26 17:58:57986semak imbas

Pengesahan Keselamatan PHP dengan Laravel Sanctum

Ikhtisar:
Dalam pembangunan web moden, pengesahan keselamatan merupakan aspek yang penting. Laravel Sanctum ialah pengawal pengesahan mudah dan fleksibel yang disediakan oleh Laravel, yang boleh digunakan untuk aplikasi pemisahan bahagian hadapan dan belakang. Artikel ini akan memperkenalkan cara menggunakan Laravel Sanctum untuk melaksanakan pengesahan keselamatan PHP dan menyediakan contoh kod yang berkaitan.

Langkah 1: Pasang Laravel Sanctum

Mula-mula, pasang pakej sambungan Sanctum dalam projek Laravel. Anda boleh menggunakan Composer untuk memasang dan menjalankan arahan berikut:

composer require laravel/sanctum

Langkah 2: Konfigurasikan Sanctum

Selepas pemasangan selesai, Sanctum perlu dikonfigurasikan. Buka fail config/app.php dalam direktori akar projek, cari tatasusunan penyedia dan tambah kod berikut: config/app.php 文件,找到 providers 数组,并添加以下代码:

'providers' => [

    // ...

    LaravelSanctumSanctumServiceProvider::class,

],

然后,运行以下命令来发布 Sanctum 的配置文件和数据库迁移文件:

php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"

接着,运行以下命令来执行数据库迁移:

php artisan migrate

步骤三:配置身份验证驱动程序

在设置过程中,需要选择使用 Sanctum 作为默认的身份验证驱动程序。打开 config/auth.php 文件,找到 guards 数组,并将默认的 guard 设置为 sanctum

'defaults' => [
    'guard' => 'sanctum',
    // ...
],

步骤四:启用 Sanctum 中间件

Sanctum 需要使用自己的中间件来处理身份验证。为了启用 Sanctum,需要将 Authenticate 中间件替换为 Sanctum 提供的中间件。打开 app/Http/Kernel.php 文件,将以下代码添加到 $routeMiddleware 数组中:

protected $routeMiddleware = [
    // ...
    'auth' => LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
];

步骤五:生成 Sanctum API Token

Sanctum 提供了 API Token 来进行身份验证。API Token 可以通过以下代码来生成:

use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

该代码在 User Model 中使用了 HasApiTokens

Route::middleware('auth:sanctum')->group(function () {
    // 这里是需要保护的路由
});

Kemudian, jalankan arahan berikut untuk menerbitkan fail konfigurasi Sanctum dan fail pemindahan pangkalan data:

use IlluminateHttpRequest;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');
    
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('api')->plainTextToken;

        return response()->json([
            'user' => $user,
            'token' => $token,
        ]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

Seterusnya, jalankan arahan berikut untuk melaksanakan pemindahan pangkalan data:

rrreee

Langkah 3: Konfigurasikan pemacu pengesahan

Semasa proses persediaan, anda perlu memilih untuk menggunakan Sanctum sebagai pemacu pengesahan lalai. Buka fail config/auth.php, cari tatasusunan guards dan tetapkan pengawal lalai kepada sanctum:

rrreee

Langkah 4: Dayakan Sanctum Middleware

Sanctum perlu menggunakan middlewarenya sendiri untuk mengendalikan pengesahan. Untuk mendayakan Sanctum, perisian tengah Authenticate perlu diganti dengan perisian tengah yang disediakan oleh Sanctum. Buka fail app/Http/Kernel.php dan tambahkan kod berikut pada tatasusunan $routeMiddleware:

rrreee

Langkah 5: Jana Token API Sanctum


Sanctum menyediakan API Token untuk pengesahan. Token API boleh dijana melalui kod berikut:

rrreee

Kod ini menggunakan ciri HasApiTokens dalam Model User untuk menjana Token API untuk pengguna.

    Langkah 6: Lindungi laluan
  • Selepas menggunakan Sanctum untuk pengesahan keselamatan, anda boleh menggunakan kod berikut untuk melindungi laluan yang memerlukan pengesahan:
rrreee🎜Kod di atas akan menggunakan perisian tengah Sanctum untuk mengesahkan Token API pengguna. 🎜🎜Langkah 7: Pengesahan🎜🎜Apabila pengguna menghantar permintaan melalui aplikasi bahagian hadapan, kod berikut boleh digunakan untuk mengesahkan: 🎜rrreee🎜Kod di atas akan mengesahkan melalui e-mel dan kata laluan yang diberikan oleh pengguna, dan kembali respons JSON dengan maklumat pengguna dan Token API. 🎜🎜Ringkasan: 🎜Dengan Laravel Sanctum, kami boleh melaksanakan pengesahan keselamatan aplikasi PHP dengan mudah. Artikel ini menerangkan cara memasang dan mengkonfigurasi Laravel Sanctum dan menyediakan contoh kod yang berkaitan. Saya harap artikel ini dapat membantu pemula dan memberi inspirasi kepada lebih ramai orang untuk belajar dan menggunakan Laravel Sanctum. 🎜🎜Pautan rujukan: 🎜🎜🎜[dokumentasi rasmi Laravel Sanctum GitHub](https://github.com/laravel/sanctum)🎜🎜

Atas ialah kandungan terperinci Pengesahan keselamatan PHP dengan Laravel Sanctum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn