以下是一个简单的PHP接口鉴权实例,我们将使用JWT(JSON Web Tokens)进行鉴权。JWT是一种紧凑且安全的方式,用于在各方之间以JSON对象的形式安全地传输信息。
1. 准备工作
确保你的PHP环境中安装了`openssl`扩展。

2. 生成JWT
我们将创建一个函数来生成JWT。
```php
function generateJWT($data, $secretKey) {
$payload = json_encode($data);
$header = json_encode(['alg' => 'HS256', 'typ' => 'JWT']);
$base64UrlHeader = strtr(base64_encode($header), '+/', '-_');
$base64UrlPayload = strtr(base64_encode($payload), '+/', '-_');
$signature = hash_hmac('SHA256', $base64UrlHeader . '.' . $base64UrlPayload, $secretKey, true);
$base64UrlSignature = strtr(base64_encode($signature), '+/', '-_');
return $base64UrlHeader . '.' . $base64UrlPayload . '.' . $base64UrlSignature;
}
```
3. 验证JWT
接下来,我们创建一个函数来验证JWT。
```php
function verifyJWT($jwt, $secretKey) {
$parts = explode('.', $jwt);
if (count($parts) != 3) {
return false;
}
$header = base64_decode($parts[0]);
$payload = base64_decode($parts[1]);
$signature = base64_decode($parts[2]);
$calculatedSignature = hash_hmac('SHA256', $header . '.' . $payload, $secretKey, true);
if (hash_equals($calculatedSignature, $signature)) {
return json_decode($payload, true);
}
return false;
}
```
4. 使用示例
下面是一个简单的使用示例。
```php
$secretKey = 'your_secret_key';
$data = ['user_id' => 123, 'username' => 'example_user'];
$jwt = generateJWT($data, $secretKey);
echo "







