jwt令牌在yii2中解码时引发异常

时间:2018-08-23 08:32:15

标签: yii2 jwt

jwt令牌在yii2中解码时引发异常。我检查了令牌值,它变成 承载eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9jbWMtc2VydmVyLmFwaSIsImF1ZCI6Imh0dHA6XC9cL2NtYy1zZXJ2ZXIuYXBpIiwiaWF0IjoxNTM1MDE1NzY3LCJuYmYiOjE1MzUwMTU3NjcsImp0aSI6NjIzLCJlbWFpbCI6InJvY2NvLmNhcHBhbGxhQGdtYWlsLmNvbSIsImRldmljZV9pZCI6ODUxfQ.5PDyFA_YtzKEvkFMhnmiwucVBf47IU3z9ejcmXUojIU

一旦我从令牌中删除了承载,那么它就可以正常工作,否则会抛出异常 “ name”:“ Exception”,     “ message”:“未知的JSON错误:5”,     “代码”:0,     “ type”:“ DomainException”,     “文件”:“ / Users / mds / Sites / cmc-server / vendor / firebase / php-jwt / src / JWT.php”,     “行”:336,

出什么问题了,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法,将完整的令牌传递给它,它将返回令牌Bearer以外的令牌部分,然后对该令牌进行解码

function getBearerToken() {
    $headers = $this->getAuthorizationHeader();
    // HEADER: Get the access token from the header
    if (!empty($headers)) {
        if (preg_match('/Bearer\s(\S+)/', $headers, $matches)) {
            return $matches[1];
        }
    }
    return null;
}

注意:您可能需要根据需要对其进行修改