php jwt通用算法

博客内容涉及使用PHP实现JWT(JSON Web Tokens)的生成与验证。通过JwtAuthServices.php类进行操作,调用方和被调用方共享一个secret进行签名验证。在多调用方场景下,JWT的payload中添加appKey字段来区分不同业务方,被调用方据此获取相应secret进行签名校验。
摘要由CSDN通过智能技术生成

JWT生成&验证类

JwtAuthServices.php

<?php
/**
 * jwt生成&验证
 * @author 
 * @date 2021-07-28
 */
class JwtAuthServices{
    // 算法
    const ALG_MAPS  = [
        'HS256'=>'sha256'
    ];

    /*
     * 生成jwt
     *@param  array header
     *@param  array payload
     *@param  string secret
     *@return string token
     */
    public static function getToken(array $header, array $payload, string $secret) {
        $base64header  = self::base64UrlEncode(json_encode($header,JSON_UNESCAPED_UNICODE));
        $base64payload = self::base64UrlEncode(json_encode($payload,JSON_UNESCAPED_UNICODE));
        $alg = $header['alg'] ?? 'HS256';
        return sprintf('%s.%s.%s', $base64header, $base64payload, self::signature($base64header . '.' . $base64payload, $secret, $alg));
    }

    /*
     * 解析jwt
     *@param  string jwt
     *@param  stri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值