jwt 令牌在 yii2 中解码时抛出异常
Posted
技术标签:
【中文标题】jwt 令牌在 yii2 中解码时抛出异常【英文标题】:jwt token is throwing exception while decoding in yii2 【发布时间】:2019-01-29 13:48:26 【问题描述】:。我检查了令牌值,它变成了 承载eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9jbWMtc2VydmVyLmFwaSIsImF1ZCI6Imh0dHA6XC9cL2NtYy1zZXJ2ZXIuYXBpIiwiaWF0IjoxNTM1MDE1NzY3LCJuYmYiOjE1MzUwMTU3NjcsImp0aSI6NjIzLCJlbWFpbCI6InJvY2NvLmNhcHBhbGxhQGdtYWlsLmNvbSIsImRldmljZV9pZCI6ODUxfQ.5PDyFA_YtzKEvkFMhnmiwucVBf47IU3z9ejcmXUojIU P>
一旦我从令牌中删除了 Bearer,它就可以正常工作了。否则它会引发异常 “名称”:“例外”, "message": "未知 JSON 错误:5", “代码”:0, “类型”:“域异常”, "文件": "/Users/mds/Sites/cmc-server/vendor/firebase/php-jwt/src/JWT.php", “行”:336,
会有什么问题请告诉我。
【问题讨论】:
您应该使用某种方法检索令牌 【参考方案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;
注意:您可能需要根据需要对其进行修改
【讨论】:
谢谢回复,但我很担心,为什么要在token Bearer的开头加上?这是标准格式吗? 它被添加到标题中以区分身份验证类型。在此处获取更多信息security.stackexchange.com/questions/108662/…以上是关于jwt 令牌在 yii2 中解码时抛出异常的主要内容,如果未能解决你的问题,请参考以下文章