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,
出什么问题了,请告诉我。
答案 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;
}
注意:您可能需要根据需要对其进行修改