当前位置:  开发笔记 > 编程语言 > 正文

PHP JWT令牌无效签名

如何解决《PHPJWT令牌无效签名》经验,为你挑选了1个好方法。

我现在正在寻找一个小时,无法找到解决这个问题的方法.

这是生成JWT令牌的代码.我使用https://github.com/firebase/php-jwt库.

        $tokenId    = base64_encode(mcrypt_create_iv(32));
        $issuedAt   = time();
        $notBefore  = $issuedAt + 10;             //Adding 10 seconds
        $expire     = $notBefore + 60;            // Adding 60 seconds
        $serverName = 'serverName'; // Retrieve the server name from config file

        $secretKey = base64_decode(getenv('JWT_SECRET'));

         $data = [
            'iat'  => $issuedAt,         // Issued at: time when the token was generated
            'jti'  => $tokenId,          // Json Token Id: an unique identifier for the token
            'iss'  => $serverName,       // Issuer
            'nbf'  => $notBefore,        // Not before
            'exp'  => $expire,           // Expire
            'data' => [                  // Data related to the signer user
                'userId'   => '1', // userid from the users table
                'userName' => $UserName, // User name
            ]
        ];

        $jwt = JWT::encode(
                $data,      //Data to be encoded in the JWT
                $secretKey, // The signing key
                'HS256'     // Algorithm used to sign the token
        );

        $unencodedArray = ['jwt' => $jwt];
        echo json_encode($unencodedArray);

我在https://jwt.io/验证令牌

在此输入图像描述

任何人都可以帮我解决这个问题吗?我现在是JWT的新人.顺便说一句,我的项目是Slim API.

非常感谢你.



1> Mika Tuupola..:

签名验证失败,因为您没有将正确的密钥传递给https://jwt.io/您需要传递$secretKeyPHP代码的值.根据截图,你传递字符串secret.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有