【问题标题】:BulletPHP framework and Firebase/JWT - Checking token errorBulletPHP 框架和 Firebase/JWT - 检查令牌错误
【发布时间】:2016-02-03 10:57:53
【问题描述】:

我正在使用 BuletPHP 框架开发 REST API。事实是我有一个 Angular JS 应用程序,它在本地存储 JWT 令牌并发送到服务器以检查过期数据。我已经生成了一个令牌,我想被拒绝,但是当我检查响应时它会启动这个异常:

exception 'Firebase\JWT\BeforeValidException' with message 'Cannot handle token prior to 2015-11-04T18:40:33+0100' in C:\Server\www\vendor\firebase\php-jwt\src\JWT.php:103 Stack trace: #0 C:\Server\www\routes\user.php(92): Firebase\JWT\JWT::decode('eyJ0eXAiOiJKV1Q...', 'QWRhZ2FsIFNpc3R...', Array) #1 [internal function]: Closure->{closure}(Object(Bullet\Request)) #2 C:\Server\www\vendor\vlucas\bulletphp\src\Bullet\App.php(311): call_user_func(Object(Closure), Object(Bullet\Request)) #3 C:\Server\www\vendor\vlucas\bulletphp\src\Bullet\App.php(195): Bullet\App->_runPath('GET', 'eyJ0eXAiOiJKV1Q...') 

为什么我在令牌解码功能上遇到此异常?

这是我的令牌:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpZCI6IjAyMjAxNTExNjVkMmVhMDM0MjU4ODdhNzE3YzQzNTA4MWNmYzVkYmIxMzMwNjQwIiwibmFtZSI6InJvb3QiLCJpYXQiOjE0NDY0ODYwMzMsIm5iZiI6MTQ0NjY1ODgzM30.qHMee39xJC9Rgx4AUzJSkBUnK3P5R1BTjL_JA5j_6f5L99U-gzZkB4VM0LWrfIMOBFQWFC9lwlUNFPWnwPUiYQ 

【问题讨论】:

    标签: php api rest jwt


    【解决方案1】:

    发生这种情况是因为您的本地机器/本地服务器上的时间比远程服务器(无论从哪里生成令牌)时间稍慢。

    如果你修改 vendor\firebase\php-jwt\src\JWT.php 的第 113 行,使用以下调试,你可以看到输出:

    echo '<br /> payload->iat = '. $payload->iat . '<br />and time() = '.time() . "<br />leeway= ". self::$leeway;
    

    这将输出类似于:

    payload->iat = 1447702275  
    and time() = 1447702211  
    leeway= 0
    

    【讨论】:

    • 非常感谢您的帮助
    猜你喜欢
    • 2021-12-08
    • 2020-12-07
    • 1970-01-01
    • 2018-03-16
    • 2018-06-19
    • 2018-11-19
    • 2020-04-19
    • 2019-05-23
    • 2016-06-27
    相关资源
    最近更新 更多