您的位置 首页 编程知识

PHP HyperF -> Firebase JWT

firebase jwt” /> hyperf – 项目 用于验证 jwt 令牌…

PHP HyperF -> Firebase JWT firebase jwt” />

hyperf – 项目

用于验证 jwt 令牌并确保身份验证过程中的真实性和完整性的简单系统。

创建 – 项目

composer create-project hyperf/hyperf-skeleton "project" 
登录后复制

安装-观察者

composer require hyperf/watcher --dev 
登录后复制

安装 – firebase jwt

composer require firebase/php-jwt 
登录后复制

服务器 – 启动

cd project ; php bin/hyperf.php server:watch ; 
登录后复制

hyperf-app

app-环境

jwt_key="***" 
登录后复制

路径:/project/.env

app-路由器

router::addroute(['get', 'post'], '/generate', 'appcontrollercontrollerjwt@generate'); router::addroute(['get', 'post'], '/decode', 'appcontrollercontrollerjwt@decode'); 
登录后复制

路径:/project/config/routes.php

app-控制器

namespace appcontroller;  use hyperfdinnotationinject; use hyperfhttpservercontract equestinterface; use hyperfhttpservercontract esponseinterface;  use function hyperfsupportenv;  use ramseyuuiduuid;  use firebasejwtjwt; use firebasejwtkey;  class controllerjwt {     #[inject]     protected requestinterface $request;      #[inject]     protected responseinterface $response;      protected $jwt_key;      public function __construct()     {         $this->jwt_key=env('jwt_key', '***');     }      public function generate()     {         $payload=[             'uuid'=>uuid::uuid4()->tostring(),             'token'=>sha1(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz')),         ];         $token=jwt::encode($payload, $this->jwt_key, 'hs256');         return [             'payload'=>$payload,             'token'=>$token,         ];     }      public function decode()     {         $token=$this->request->getheader('authorization')[0] ?? '';         $token=str_replace('bearer ', '', $token);         try {             $decode=jwt::decode($token, new key($this->jwt_key, 'hs256'));         } catch (exception $e){             return $this->response->withstatus(401)->json(['token'=>'invalid']);         }         return [             'token'=>$token,             'decode'=>$decode,         ];     }  } 
登录后复制

路径:/project/app/controller/controllerjwt.php

执行

get – 生成令牌

curl "http://127.0.0.1:9501/generate"  response: {     "payload": {         "uuid": "...0123",         "token": "***"     },     "token": "***" } 
登录后复制

get – 解码令牌

curl "http://127.0.0.1:9501/decode" -H "Authorization: Bearer %token%"  Response: {     "token": "***",     "decode": {         "uuid": "...0123",         "token": "***"     } } 
登录后复制

https://hub.com/thiagoeti/php-hyperf-firebase-jwt

立即学习“”;

以上就是PHP HyperF -> Firebase JWT的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/4607.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部