altelma / php-jwt
使用HS256和RS256在PHP中创建和验证JWT签名。
v1.1
2019-02-21 09:58 UTC
This package is auto-updated.
Last update: 2024-09-12 19:07:14 UTC
README
为Laravel的简单JWT
一个简单的库,用于使用HS256和RS256在PHP中创建和验证JWT签名。
设置
- 运行
$ composer require altelma/php-jwt
Laravel
- (仅适用于Laravel 5.5或更低版本)将提供程序添加到config/app.php
'providers' => [ Altelma\JWT\JWTServiceProvider::class, ],
- 运行
$ php artisan vendor:publish
以发布配置文件config/jwt.php
并插入- private_key
- public_key
Lumen
- 将提供程序添加到
bootstrap/app.php
$app->register(Altelma\JWT\JWTServiceProvider::class);
-
将
vendor/altelma/php-jwt/config/jwt.php
复制到config/jwt.php
并插入- private_key
- public_key
-
将配置添加到
bootstrap/app.php
$app->configure('jwt');
- 允许通过外观调用包,取消注释
$app->withFacades(); if (!class_exists('JWT')) { class_alias('Altelma\JWT\JWTFacade', 'JWT'); }
基本用法
以下示例用于生成JWT
<?php namespace App\Http\Controllers; use GuzzleHttp\Client; class JwtController extends Controller { private function getJWT() { $client = new Client(); $response = $client->post('your_auth_url', [ 'headers' => [ 'Content-Type' => 'application/json', ], 'json' => [ 'email' => 'admin@example.com', 'password' => 'password' ] ]); $response = json_decode($response->getBody(), true); return $response['accesstoken']; } public function verifyJwt() { $jwtToken = 'YOUR_JWT_TOKEN'; $verifyToken = \JWT::verify('sha256', $jwtToken); return ['success' => $verifyToken]; } public function genJwt() { $header = [ "alg" => "RS256", "typ" => "JWT" ]; $payload = [ "sub" => "465465464646", "name" => "John Doe", "admin" => true ]; return ['success' => true, 'access_token' => \JWT::generate('sha256', $header, $payload)]; } }
错误报告
这个包现在并不完美,但我们可以一起改进。如果你发现了任何错误或有任何建议,请发给我或者创建一个新的问题。感谢使用它。