jwt_encode_hmac() に渡した Secret= パラメータに問題があるようです。 charToRaw 関數(shù)は 16 進數(shù)を理解できず、ASCII 文字コードのみを使用します。変換を行うには、既存の質問の hex_to_raw 関數(shù)の 1 つを使用する必要があります。ここでは関數(shù)を使用して変換を行っています。
リーリーまた、ヘッダーに alg と typ を指定する必要はありません。これらは関數(shù)によって自動的に追加されるためです。したがって、次を使用してトークンを構築できます:
リーリーhttps://jwt.io/ にあるデバッガーを使用して各トークンをテストしましたが、それらは同等であるようです。デバッガでは、16 進値「12bd18f2cd12」の Base64 エンコード値は「Er0Y8s0S」です。