""> PHP-JWT を使用して FHIR に Epic を実装する-PHP中国語ネットワークQ&A
PHP-JWT を使用して FHIR に Epic を実装する
P粉593649715
P粉593649715 2023-08-30 23:58:19
0
1
558

jwt トークンを取得しようとしていますが、何をしようとしても毎回エラーが発生します。私が試したことは次のとおりです。パッケージなしで jwt-token を取得しますが、jwt.io を使用して署名検証をチェックすると毎回失敗します。このパッケージを使用しているときに、秘密キーを強制できません、場合によってはアルゴリズムが無効ですなどのさまざまなエラーが発生しました。私が間違えたところを修正してください。

  • php-Jwt なし
$header = [ 'alg' => "RS384", 'typ' => "JWT" ]; $ペイロード = [ 'iss' => '私のクライアント ID'、 'サブ' => '私のクライアントID'、 'aud' => "https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token", 'jti' => (文字列)strtotime(gmdate("Y-m-d H:i:s")), 'exp' => strtotime(gmdate("Y-m-d H:i:s")) 270, ]; $privateKey = "私の秘密鍵" $headers_encoded = $this->base64url_encode(json_encode($header)); $payload_encoded = $this->base64url_encode(json_encode($payload)); $signature = hash_hmac('sha384', $headers_encoded.'.'.$payload_encoded, $privateKey, true); // 署名をbase64url文字列としてエンコードします $signature_encoded = $this->base64url_encode($signature); $jwt = $headers_encoded.'.'.$payload_encoded.'.'.$signature_encoded;

- php-jwt を使用

  1. パッケージがインストールされました Composer には firebase/php-jwt --ignore-platform-req=ext-mongodb が必要です
  2. コントローラで必要なファイルを使用しました
Firebase\JWT\JWT を使用します。 Firebase\JWT\Key を使用します;
  1. エンコードしてみます:
$check = JWT::encode( $ヘッダー、 $ペイロード、 $privateKey、 「RS384」 );

秘密キーを適用できません、場合によってはアルゴリズムが無効ですなどのさまざまなエラーが表示されます。私が間違えたところを修正してください。

簡単に言えば、これが私がやっていること、またはやろうとしていることです。私の代コードの一般的な形式:

 「RS384」、 'typ' => 「JWT」 ]; $ペイロード = [ 'サブ' => '1234567890', '名前' => 'ジョン・ドウ'、 'iat' => 1516239022 ]; // ヘッダーとペイロードを JSON 文字列としてエンコードします $headerEncoded = Base64_encode(json_encode($header)); $payloadEncoded = Base64_encode(json_encode($payload)); // ヘッダー、ペイロード、シークレットを連結して署名を作成します $signature = hash_hmac('sha384', "$headerEncoded.$payloadEncoded", $privateKey, true); // 署名を Base64 文字列としてエンコードします $signatureEncoded = Base64_encode($signature); // ヘッダー、ペイロード、署名を連結して JWT を作成します $jwt = "$headerEncoded.$payloadEncoded.$signatureEncoded"; echo $jwt;

私たちは jwt の名前を取得しましたが、https://jwt.io/ 上ではまだテストされていないことが示されています。

P粉593649715
P粉593649715

全員に返信 (1)
P粉037215587

修正されました

  • 代わりにこれを使用してくださいhash_mac():
リーリー
  • キーが PHP 変数に保存されている場合は、次の形式でキーを設定していることを確認してください:
リーリー

各行を二重引用符""で囲み、各行の末尾に\nを追加します。

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!