【问题标题】:jwt token is throwing exception while decoding in yii2jwt 令牌在 yii2 中解码时抛出异常
【发布时间】:2019-01-29 13:48:26
【问题描述】:

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

一旦我从令牌中删除了 Bearer,它就可以正常工作了。否则它会引发异常 “名称”:“例外”, "message": "未知 JSON 错误:5", “代码”:0, “类型”:“域异常”, "文件": "/Users/mds/Sites/cmc-server/vendor/firebase/php-jwt/src/JWT.php", “行”:336,

会有什么问题请告诉我。

【问题讨论】:

  • 您应该使用某种方法检索令牌

标签: yii2 jwt


【解决方案1】:

您可以使用以下方法,将您的完整令牌传递给它,它将返回您除了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;
}

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

【讨论】:

猜你喜欢
  • 2013-08-18
  • 2019-03-08
  • 2021-12-30
  • 2018-10-05
  • 2019-05-19
  • 2018-03-06
  • 2019-10-11
  • 2018-04-19
  • 2017-04-16
相关资源
最近更新 更多