Rumah > pembangunan bahagian belakang > tutorial php > Sediakan pelayan OAuth2 menggunakan pasport di laravel

Sediakan pelayan OAuth2 menggunakan pasport di laravel

Lisa Kudrow
Lepaskan: 2025-03-05 11:32:11
asal
517 orang telah melayarinya

Set Up an OAuth2 Server Using Passport in Laravel

Tutorial ini menunjukkan membina pelayan OAuth2 yang mantap dalam aplikasi Laravel menggunakan perpustakaan pasport Laravel. Kami akan merangkumi konfigurasi pelayan dan memberikan contoh praktikal untuk memakan OAuth2 API. Pengetahuan asas OAuth2 diandaikan. Pasport Laravel memudahkan proses dengan ketara.

Tutorial dibahagikan kepada dua bahagian: pemasangan dan konfigurasi perpustakaan, diikuti dengan mewujudkan dan memakan sumber sampel.

Konfigurasi pelayan

Butiran bahagian ini memasang dan mengkonfigurasi komponen yang diperlukan untuk pasport berfungsi dengan Laravel.

Memasang Perpustakaan Pasport Laravel

Gunakan komposer untuk memasang perpustakaan:

composer require laravel/passport
Salin selepas log masuk
Ini melengkapkan pemasangan pasport. Seterusnya, kami akan mengintegrasikannya ke Laravel.

Membolehkan perkhidmatan pasport

Laravel menggunakan penyedia perkhidmatan untuk menguruskan perkhidmatan aplikasi. Untuk membolehkan pasport, anda perlu menambah pembekal perkhidmatannya kepada

. (Jika tidak dikenali dengan penyedia perkhidmatan Laravel, rujuk kepada sumber pengantar yang relevan.) Secara kritis, anda juga mesti mendaftarkan laluan pasport (dalam kaedah config/app.php boot) dan menjalankan perintah app/Providers/AuthServiceProvider.php. Perintah ini juga membolehkan penciptaan pelanggan. Mari buat pelanggan demo. php artisan passport:install

php artisan passport:client
Salin selepas log masuk
arahan arahan untuk butiran: ID Pengguna, Nama Pelanggan, dan Redirect URI. URI redirect adalah di mana pengguna diarahkan selepas kebenaran, membawa kod kebenaran.

mari kita asumsikan output berikut:

<code>New client created successfully.
Client ID: 3
Client secret: 1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m</code>
Salin selepas log masuk
Sekarang, kita boleh menguji OAuth2 API.

3 3

ingat untuk menggantikan ruang letak seperti oauth2_client dan

dengan nilai sebenar anda.

Seterusnya, buat oauth2_client/callback.php

:
<?php
$query = http_build_query([
    'client_id' => '3',
    'redirect_uri' => 'http://localhost/oauth2_client/callback.php',
    'response_type' => 'code',
    'scope' => '',
]);

header('Location: http://your-laravel-site-url/oauth/authorize?' . $query);
?>
Salin selepas log masuk

client_id Sekali lagi, laraskan URL dan kelayakan seperti yang diperlukan. redirect_uri

aliran kerja

Pengguna berinteraksi dengan dua aplikasi: Aplikasi Laravel (dengan akaun sedia ada) dan klien pihak ketiga (auth_redirection.php dan callback.php).
<?php
if (isset($_REQUEST['code']) && $_REQUEST['code']) {
    $ch = curl_init();
    $url = 'http://your-laravel-site-url/oauth/token';

    $params = [
        'grant_type' => 'authorization_code',
        'client_id' => '3',
        'client_secret' => '1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m',
        'redirect_uri' => 'http://localhost/oauth2_client/callback.php',
        'code' => $_REQUEST['code'],
    ];

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $params_string = '';
    if (is_array($params) && count($params)) {
        foreach ($params as $key => $value) {
            $params_string .= $key . '=' . $value . '&';
        }
        rtrim($params_string, '&');
        curl_setopt($ch, CURLOPT_POST, count($params));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string);
    }

    $result = curl_exec($ch);
    curl_close($ch);
    $response = json_decode($result);

    if (isset($response->access_token) && $response->access_token) {
        $access_token = $response->access_token;

        $ch = curl_init();
        $url = 'http://your-laravel-site-url/api/user/get';
        $header = ['Authorization: Bearer ' . $access_token];
        $query = http_build_query(['uid' => '1']);

        curl_setopt($ch, CURLOPT_URL, $url . '?' . $query);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        $result = curl_exec($ch);
        curl_close($ch);
        $response = json_decode($result);
        var_dump($result);
    }
}
?>
Salin selepas log masuk
  1. Pengguna mengakses http://localhost/oauth2_client/auth_redirection.php.
  2. ini mengalihkan ke halaman kebenaran aplikasi Laravel.
  3. Selepas log masuk dan kebenaran, pengguna diarahkan ke http://localhost/oauth2_client/callback.php dengan kod kebenaran.
  4. callback.php Menukar kod untuk token akses.
  5. Token akses digunakan untuk membuat panggilan API (mis., Untuk http://your-laravel-site-url/api/user/get).

Kesimpulan

Tutorial ini mempamerkan kemudahan penggunaan Laravel Passport dalam menubuhkan pelayan OAuth2. Untuk sumber pembangunan Laravel selanjutnya, terokai Envato Market.

Atas ialah kandungan terperinci Sediakan pelayan OAuth2 menggunakan pasport di laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan