laxo / authecticate-system
PHP JWT 授权类提供了一种简单的方法来使用 JSON Web Tokens (JWT) 管理用户身份验证和授权。此类旨在无缝处理令牌生成、验证和用户会话管理,确保您的应用程序安全高效的认证。
v1.0.1
2024-06-30 20:23 UTC
Requires
- firebase/php-jwt: ^6.10
Requires (Dev)
- firebase/php-jwt: ^6.10
README
PHP JWT 授权类
安全 | 易用 | 会话管理 | 令牌验证 | IP 验证
适用于管理身份验证和授权
简介
PHP JWT 授权类 提供了一种简单的方法来使用 JSON Web Tokens (JWT) 管理用户身份验证和授权。此类旨在无缝处理令牌生成、验证和用户会话管理,确保您的应用程序安全高效的认证。
功能
- JWT 编码和解码:安全地编码和解码 JWT。
- 用户认证:认证用户和管理用户会话。
- 令牌验证:验证 JWT 以确保它们未被篡改。
- IP 验证:确保会话期间 IP 地址保持一致。
- 会话管理:使用自动注销和令牌更新管理用户会话。
安装
- 克隆仓库
git clone https://github.com/samirkl/PHP-Authenticate-System.git
- 安装依赖项
composer require firebase/php-jwt
用法
将 Authorize 类包含到您的项目中,并使用其方法来管理认证。
生成令牌
- 为用户生成 JWT
<?php require 'Authorize.php'; // User information to protect $userData = [ 'username' => 'bond', 'password' => 'hashed_password', 'name' => 'James Bond', 'phone' => '123-456-7890', ... ]; // Authenticate user and set session Authorize::auth($userData);
验证令牌
- 使用令牌验证用户的身份
<?php require 'Authorize.php'; try { $isApi = true; // Set to true if this is an API call $isAuthenticated = Authorize::verifyIdentity($isApi); if ($isAuthenticated) { // User is authenticated echo 'User is authenticated'; } else { // Authentication failed echo 'Authentication failed'; } } catch (Exception $e) { echo 'Error: ' . $e->getMessage(); }
注销
- 注销用户
<?php require 'Authorize.php'; $isLoggedOut = Authorize::logOut(); if ($isLoggedOut) { echo 'User logged out successfully'; } else { echo 'User was not logged in'; }
方法
Authorize::hash($value)
将给定值编码为 JWT。
- 参数:
string|array $value
- 要编码的数据。 - 返回:
string
- 编码的 JWT。
Authorize::unHash($value)
解码给定的 JWT。
- 参数:
string $value
- 编码的 JWT。 - 返回:
string|false
- 解码的数据作为 JSON 字符串或失败时返回 false。 - 抛出:
JsonException
Authorize::auth(array|bool $protectedData = false)
认证用户并设置会话数据。
- 参数:
array|bool $protectedData
- 要保护的用户数据(例如,用户名、密码)。
Authorize::verifyIdentity(bool $isApi = false)
使用存储的令牌验证用户身份。
- 参数:
bool $isApi
- 如果为 true,则在认证后更新令牌。 - 返回:
bool
- 如果认证成功则返回 true,否则返回 false。 - 抛出:
Exception
Authorize::getIPAddress()
获取用户的 IP 地址。
- 返回:
string
- 用户的 IP 地址。
Authorize::logOut()
通过清除会话和cookie注销用户。
- 返回:
bool
- 如果用户被注销则返回 true,如果用户未登录则返回 false。
Authorize::validateToken($token)
验证给定的令牌。
- 参数:
string $token
- 要验证的 JWT。 - 返回:
array|null
- 解码的令牌数据作为数组或失败时返回 null。 - 抛出:
JsonException
Authorize::isValidToken($tokenData)
检查令牌数据是否有效。
- 参数:
array $tokenData
- 解码的令牌数据。 - 返回:
bool
- 如果令牌有效则返回 true,否则返回 false。
许可证
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
贡献
欢迎贡献!请随意提交拉取请求。
致谢
- Firebase JWT PHP 用于 JWT 处理。