Firebase JWT:签名验证失败

时间:2016-02-29 18:30:37

标签: php jwt firebase-authentication

我正在尝试使用Firebase进行JWT身份验证,但我总是遇到此错误:“致命错误:未捕获Firebase \ JWT \ SignatureInvalidException:签名验证失败”。

代码是这样的:

$key = "test";

$tokenId    = base64_encode(mcrypt_create_iv(32));
$issuedAt   = time();
$notBefore  = $issuedAt + 10;
$expire     = $notBefore + 60;
$serverName = $_SERVER["SERVER_NAME"];


$data = [
    'iat'  => $issuedAt,
    'jti'  => $tokenId,
    'iss'  => $serverName,
    'nbf'  => $notBefore,
    'exp'  => $expire,
    "userId"  => 1
];


$secretKey = base64_decode($key);


$jwt = \Firebase\JWT\JWT::encode($data, $secretKey, 'HS256');

// and when I decode the tokens, I got that exception
$decoded = \Firebase\JWT\JWT::decode($jwt, $key, array('HS256'));

我错了什么?

1 个答案:

答案 0 :(得分:3)

你不需要$secretKey或base64_decode关键,只需这样做:

$jwt = \Firebase\JWT\JWT::encode($data, $key, 'HS256');
$decoded = \Firebase\JWT\JWT::decode($jwt, $key, array('HS256'));