0
我剛剛開始使用基於令牌的身份驗證,並且已經編寫了一個非常簡單的PHP腳本來創建JWT。但是,當我在jwt.io的調試器中運行它時,簽名從不驗證。JWT簽名不在PHP中驗證
$secret = "super_secure_private_key";
function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), "+/", "-_"), "=");
}
$header = base64url_encode(json_encode([
"alg" => "HS256",
"typ" => "JWT"
]));
$payload = base64url_encode(json_encode([
"name" => "James Walker",
"privileges" => "total"
]));
$signature = base64url_encode(hash_hmac("sha256", $header . "." . $payload, $secret));
$token = $header . "." . $payload . "." . $signature;
至於我可以告訴大家,我實現內聯智威湯遜的格式。我錯過了什麼,或者我應該使用庫例如php-jwt生成新的令牌並讓它們驗證?
對於我的使用,無論如何我的實現可能會正常工作,因爲我仍然可以使用相同的代碼驗證令牌。但我只是不確定爲什麼jwt.io沒有驗證簽名。
非常感謝!它現在可以工作,我所有的簽名都會被驗證。非常感激。 – Ilmiont
@Imiont快樂編碼* <帽尖> * – BeetleJuice