Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk melaksanakan pengesahan untuk RESTful API dalam PHP

Bagaimana untuk melaksanakan pengesahan untuk RESTful API dalam PHP

Sep 06, 2023 pm 12:00 PM
Kaedah pelaksanaan restful api pengesahan php

如何在PHP中实现RESTful API的身份验证

Cara melaksanakan pengesahan API RESTful dalam PHP

RESTful API ialah gaya reka bentuk antara muka pengaturcaraan aplikasi Internet yang biasa digunakan. Dalam pembangunan sebenar, untuk melindungi keselamatan API, kami biasanya perlu mengesahkan pengguna. Artikel ini akan memperkenalkan cara melaksanakan pengesahan API RESTful dalam PHP dan memberikan contoh kod khusus.

1. Pengesahan Asas

Pengesahan asas ialah kaedah pengesahan yang paling mudah dan salah satu kaedah yang paling biasa digunakan. Pengesahan asas berfungsi dengan menambahkan medan Kebenaran dalam pengepala permintaan HTTP untuk lulus bukti kelayakan pengguna. Dalam PHP, kita boleh mencapai pengesahan asas dengan mendapatkan maklumat pengepala permintaan HTTP.

<?php
// 获取HTTP请求头部信息
$headers = getallheaders();

// 验证Authorization字段
if (isset($headers['Authorization'])) {
    // 获取用户凭证
    $authHeader = $headers['Authorization'];
    list($type, $credentials) = explode(' ', $authHeader);

    // 解码凭证
    $decodedCredentials = base64_decode($credentials);
    list($username, $password) = explode(':', $decodedCredentials);

    // 验证用户名和密码
    if ($username == 'admin' && $password == '123456') {
        echo '通过身份验证';
    } else {
        echo '身份验证失败';
    }
} else {
    // 未传递Authorization字段,返回身份验证失败
    echo '身份验证失败';
}
?>
Salin selepas log masuk

2. Pengesahan Token

Pengesahan token ialah kaedah pengesahan biasa Ia menghasilkan Token unik untuk pengguna selepas pengesahan log masuk dan mengembalikan Token kepada pelanggan Selepas itu, setiap permintaan pelanggan perlu menambah medan Kebenaran pengepala HTTP untuk menghantar maklumat Token. Dalam PHP, kita boleh menggunakan JSON Web Token (JWT) untuk melaksanakan pengesahan Token.

<?php
require_once 'vendor/autoload.php';

use FirebaseJWTJWT;

// 设置JWT密钥
$key = 'your-secret-key';

// 生成Token
$token = JWT::encode(array(
    'username' => 'admin',
    'exp' => time() + 3600
), $key);

// 解码Token
$decoded = JWT::decode($token, $key, array('HS256'));

// 验证Token
if ($decoded->username == 'admin') {
    echo '通过身份验证';
} else {
    echo '身份验证失败';
}
?>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan perpustakaan Firebase JWT untuk menjana dan menyahkod Token, yang perlu dipasang melalui Komposer. Untuk setiap permintaan, kami perlu menambah Token pada pengepala HTTP untuk penghantaran.

3. Pengesahan OAuth 2.0

OAuth 2.0 ialah standard terbuka yang biasa digunakan untuk membenarkan aplikasi pihak ketiga mengakses sumber yang dilindungi. Dalam PHP, kita boleh menggunakan perpustakaan Pelayan League OAuth2 untuk melaksanakan pengesahan OAuth 2.0.

<?php
require_once 'vendor/autoload.php';

use LeagueOAuth2ServerGrantPasswordGrant;
use LeagueOAuth2ServerGrantRefreshTokenGrant;
use LeagueOAuth2ServerResourceServer;
use LeagueOAuth2ServerAuthorizationServer;
use LeagueOAuth2ServerCryptKey;
use LeagueOAuth2ServerGrantClientCredentialsGrant;

// 设置公钥和私钥
$privateKey = new CryptKey('path/to/private.key', 'passphrase');
$publicKey = new CryptKey('path/to/public.key');

// 创建认证服务器
$server = new AuthorizationServer();

// 添加授权类型
$server->enableGrantType(
    new PasswordGrant(
        new UserRepository(),
        new RefreshTokenRepository()
    )
);

// 添加客户端授权类型
$server->enableGrantType(
    new ClientCredentialsGrant(),
    new DateInterval('PT1H') // 访问令牌有效期为1小时
);

// 创建资源服务器
$resourceServer = new ResourceServer(
    new AccessTokenRepository(),
    $publicKey
);

// 验证访问令牌
try {
    $accessToken = $resourceServer->validateAuthenticatedRequest(
        ZendDiactorosServerRequestFactory::fromGlobals()
    );

    echo '通过身份验证';
} catch (Exception $e) {
    echo '身份验证失败';
}
?>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan perpustakaan Pelayan League OAuth2 untuk melaksanakan pengesahan OAuth 2.0. Kita perlu membuat contoh AuthorizationServer dan ResourceServer dan mengkonfigurasi jenis kebenaran dan repositori token yang sepadan. Untuk setiap permintaan, kami boleh menggunakan ResourceServer untuk mengesahkan token akses.

Ringkasan

Artikel ini memperkenalkan kaedah melaksanakan pengesahan API RESTful dalam PHP dan memberikan contoh kod untuk pengesahan asas, pengesahan Token dan pengesahan OAuth 2.0. Berdasarkan keperluan sebenar dan keperluan keselamatan, anda boleh memilih kaedah pengesahan yang sesuai untuk melindungi keselamatan API.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan untuk RESTful API dalam PHP. 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelbagai cara untuk melaksanakan operasi pemadaman kelompok dalam MyBatis Pelbagai cara untuk melaksanakan operasi pemadaman kelompok dalam MyBatis Feb 19, 2024 pm 07:31 PM

Beberapa cara untuk melaksanakan pernyataan pemadaman kelompok dalam MyBatis memerlukan contoh kod khusus Dalam beberapa tahun kebelakangan ini, disebabkan oleh peningkatan jumlah data, operasi kelompok telah menjadi bahagian penting dalam operasi pangkalan data. Dalam pembangunan sebenar, kita selalunya perlu memadamkan rekod dalam pangkalan data secara berkelompok. Artikel ini akan menumpukan pada beberapa cara untuk melaksanakan pernyataan padam kelompok dalam MyBatis dan memberikan contoh kod yang sepadan. Gunakan teg foreach untuk melaksanakan pemadaman kelompok MyBatis menyediakan teg foreach, yang boleh melintasi set dengan mudah.

Pembangunan API RESTful dalam rangka kerja Yii Pembangunan API RESTful dalam rangka kerja Yii Jun 21, 2023 pm 12:34 PM

Yii ialah rangka kerja MVC berprestasi tinggi berdasarkan PHP Ia menyediakan set alat dan fungsi yang sangat kaya untuk menyokong pembangunan aplikasi web yang pantas dan cekap. Antaranya, fungsi RESTfulAPI bagi rangka kerja Yii telah menarik lebih banyak perhatian dan kasih sayang pembangun, kerana menggunakan rangka kerja Yii boleh membina antara muka RESTful berprestasi tinggi dan mudah berskala, memberikan sokongan kuat untuk pembangunan aplikasi web. Pengenalan kepada RESTfulAPI RESTfulAPI ialah a

Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP Aug 07, 2023 pm 10:53 PM

Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP Dengan pembangunan Internet, semakin banyak aplikasi perlu berinteraksi dengan platform pihak ketiga. Untuk melindungi privasi dan keselamatan pengguna, banyak platform pihak ketiga menggunakan protokol OAuth2 untuk melaksanakan pengesahan pengguna. Dalam artikel ini, kami akan memperkenalkan kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP, dan melampirkan contoh kod yang sepadan. OAuth2 ialah rangka kerja kebenaran yang membolehkan pengguna membenarkan aplikasi pihak ketiga mengakses sumber mereka pada pembekal perkhidmatan lain tanpa menyebut

Reka bentuk dan pembangunan RESTful API menggunakan modul penghalaan dalam PHP Reka bentuk dan pembangunan RESTful API menggunakan modul penghalaan dalam PHP Oct 15, 2023 am 11:36 AM

Reka bentuk dan pembangunan RESTfulAPI menggunakan modul penghalaan dalam PHP Dengan pembangunan berterusan Internet, terdapat lebih banyak aplikasi berasaskan Web, dan antara muka REST (RepresentationalStateTransfer) telah menjadi kaedah biasa untuk mereka bentuk dan membangunkan perkhidmatan Web. Dalam PHP, melaksanakan RESTfulAPI boleh memudahkan pembangunan dan pengurusan melalui modul penghalaan. Artikel ini akan memperkenalkan cara menggunakan modul penghalaan dalam PHP untuk mereka bentuk dan membangunkan RES

Amalan terbaik tentang cara menggunakan API RESTful dalam PHP Amalan terbaik tentang cara menggunakan API RESTful dalam PHP Jun 17, 2023 am 09:24 AM

Dengan populariti aplikasi web, menggunakan RESTful API telah menjadi bahagian penting dalam pembangunan web. RESTfulAPI ialah protokol piawai yang membenarkan komunikasi antara aplikasi web dan platform lain Ia menggunakan protokol HTTP untuk berkomunikasi supaya pelanggan dan pelayan yang berbeza boleh saling beroperasi. Dalam pembangunan PHP, penggunaan RESTful API telah menjadi lebih dan lebih biasa. Artikel ini akan memperkenalkan amalan terbaik tentang cara menggunakan RESTfulAPI dalam PHP

Prinsip dan kaedah asas pelaksanaan kaedah pewarisan di Golang Prinsip dan kaedah asas pelaksanaan kaedah pewarisan di Golang Jan 20, 2024 am 09:11 AM

Prinsip asas dan kaedah pelaksanaan kaedah pewarisan Golang Di Golang, pewarisan merupakan salah satu ciri penting pengaturcaraan berorientasikan objek. Melalui pewarisan, kita boleh menggunakan sifat dan kaedah kelas induk untuk mencapai penggunaan semula dan kebolehlanjutan kod. Artikel ini akan memperkenalkan prinsip asas dan kaedah pelaksanaan kaedah pewarisan Golang, dan memberikan contoh kod khusus. Prinsip asas kaedah pewarisan Di Golang, pewarisan dilaksanakan dengan membenamkan struktur. Apabila struktur dibenamkan dalam struktur lain, struktur terbenam telah dibenamkan

Bagaimana untuk melaksanakan ujian penyepaduan API RESTful dalam PHP Bagaimana untuk melaksanakan ujian penyepaduan API RESTful dalam PHP Sep 06, 2023 pm 03:19 PM

Cara melaksanakan ujian integrasi RESTfulAPI dalam PHP Dengan pembangunan aplikasi web dan populariti RESTfulAPI, ujian integrasi API telah menjadi semakin penting. Dalam PHP, kita boleh menggunakan beberapa alatan dan teknik untuk melaksanakan ujian integrasi tersebut. Artikel ini akan memperkenalkan cara melaksanakan ujian penyepaduan RESTfulAPI dalam PHP dan menyediakan beberapa contoh kod untuk membantu anda memahami. Pengujian Integrasi dengan PHPUnit PHPUnit ialah ujian unit yang paling popular dalam PHP

Flask vs FastAPI: Rangka kerja manakah yang lebih baik untuk membina API RESTful? Flask vs FastAPI: Rangka kerja manakah yang lebih baik untuk membina API RESTful? Sep 27, 2023 pm 02:17 PM

Flask vs FastAPI: Rangka kerja manakah yang lebih baik untuk membina API RESTful? Berikutan populariti aplikasi web yang berterusan, semakin ramai pembangun menumpukan pada membina API RESTful berprestasi tinggi. Dalam medan Python, Flask dan FastAPI ialah dua rangka kerja yang telah menarik perhatian ramai. Kedua-duanya mampu membina API RESTful dengan cepat dan mempunyai sokongan komuniti yang meluas. Jadi, apakah perbezaan antara Flask dan FastAPI?

See all articles