토큰 기반 인증을 시작하고 매우 간단한 PHP 스크립트를 작성하여 JWT를 작성했습니다. 그러나 jwt.io의 디버거에서 실행할 때 서명이 확인되지 않습니다.PHP에서 JWT 서명이 확인되지 않습니다.
$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;
는 지금까지 내가 말할 수있는, 내 구현은 JWT의 서식 인라인입니다. 뭔가를 놓친 적이 있습니까? 예를 들어 도서관을 사용해야합니까? php-jwt를 사용하여 새 토큰을 생성하고 검증 할 수 있습니까?
동일한 코드를 사용하여 토큰을 직접 확인할 수 있기 때문에 제 구현에는 문제가 없을 수 있습니다. 하지만 jwt.io가 서명을 검증하지 않는 이유는 확실하지 않습니다.
정말 고마워요! 이제 작동하며 모든 서명이 검증됩니다. 매우 감사. – Ilmiont
@Ilmiont 해피 코딩 * <모자 팁> * – BeetleJuice