JWT 認証

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  埋め込まれた Web ページソリューション > サンプル >

JWT 認証

このセクションの JWT 認証サンプルは、 前のセクション内の設定済みのページソース の Web ページを編集します。ソリューションへの呼び出しと共に、 JWT も送信されます。JWT は文字列として送信される必要があります (すなわち、引用符を用いて送信する必要があります)。下のコード リスティングでは、 JWT は青でハイライトされています。

 

このサンプルで使用されるファイルは JWT.htmljsonBooks.mtd です。 両方のファイルは次の場所にあります: マイドキュメント MobileTogether フォルダー: MobileTogetherDesignerExamples\Tutorials\EmbeddedWebpageSolutions。 ファイルを試すには、 MTD ファイルをサーバーにデプロイし、サーバーの設定内で JWT 認証を有効化します (次のセクションを参照してください)。 newuser がサーバーに登録されていない場合、自動的にユーザーとしてインポートされ、ログインが成功します。jsonBooks.mtd のコンテナーにアクセスするには、パーミッションを設定をする必要があります。 必要な場合は、正確なワークフローをターゲットするために HTML コードを変更します。

 

このサンプルファイル内の JWT は www.altova.com に設定されたオーディエンスの要求、および、(ユーザー名を指定する) newuser に設定されたサブジェクトの要求 を使用して作成されました。この JWT を生成するために使用された秘密は gQkhVQPKkNYts3CraUsmmF6RyEvTCFnt です。

 

サーバーの設定

サーバーが Web ページにより送信される JWT を非暗号化し検証するために、 JWT 認証は次の2つの設定と共にサーバーの設定内で有効化されている必要があります (下のスクリーンショット):

 

JWT を生成するために使用される秘密: gQkhVQPKkNYts3CraUsmmF6RyEvTCFnt
JWT を生成するために使用されるオーディエンスの要求の値: www.altova.com

MTDEWSExJWT01

メモ:更に、 newuser jsonBooks.mtd のコンテナーにアクセスできるようにパーミッションを設定 することを忘れないでください。

 

HTML コード リスティング

ファイル JWT.htmlHTML コード リスティング。JWT は青でハイライトされています。 このサンプルで使用される JavaScript 機能は、全てのブラウザーで使用できない場合があることに注意してください。 この場合、ブラウザーに合うように JavaScript を変更してください。

 

Web ページ コード リスティング

 

<!DOCTYPE html>

<html>

   <head>

      <style>

         * {

            font-family: Segoe UI, Tahoma, Arial, Helvetica, sans-serif;

         }

         iframe {

            width: 100%;

            height: 400px;

            border: 2px solid blue;

            border-radius: 5px;

            margin: 10px 0px;

         }

         code {

            font-size: small;

         }

      </style>

      <script src="http://localhost:8083/js4.0/WebAppIFrame.js"></script>

      <script>

         // The initial book list stored in a variable in JSON format

          var books = {

               "books": [

                  {

                     "author": "Mary Shelley",

                     "title": "Frankenstein; or, The Modern Prometheus",

                     "year": 1818,

                     "pages": 280

                  },

                  {

                     "author": "Bram Stoker",

                     "title": "Dracula",

                     "year": 1897,

                     "pages": 302

                  }

               ]

            };                                                                          

         

          // Contents of variable 'books' converted to string and displayed inside HTML element CODE

          function showbooks() {

              document.querySelector('code').innerText = JSON.stringify(books, null, ' ');

           }

 

           // m = HTML message event; data = container for message from server

           // m.data.json = contents of the 'json' object that was sent from the server

        function receivebooks(m) {

              books = m.data.json;

              showbooks();

           }

         

           // Handler to show books in webpage on page load

          document.addEventListener('DOMContentLoaded', showbooks);

 

            // Handler to receive messages from server via solution in IFrame

            window.addEventListener('message', receivebooks);

 

           // Handler to send data to IFrame on page load

          document.addEventListener('DOMContentLoaded', function() {

               var embedded = new WebAppIFrame(document.querySelector('iframe'));                                

               embedded.start('http://localhost:8083/run?d=/public/jsonBooks', books, 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE1MDE4MzU4MzUsImV4cCI6MTUzMzM3MTgzNSwiYXVkIjoid3d3LmFsdG92YS5jb20iLCJzdWIiOiJuZXd1c2VyIiwiR2l2ZW5OYW1lIjoiSm9obm55IiwiU3VybmFtZSI6IlJvY2tldCIsIkVtYWlsIjoianJvY2tldEBleGFtcGxlLmNvbSIsIlJvbGUiOlsiTWFuYWdlciIsIlByb2plY3QgQWRtaW5pc3RyYXRvciJdfQ.M66SBrP_U30iQeheQWpPTdaBzsJZqK2L7BJQ8gKP-Lo');

            });

    </script>

  </head>

 

 

  <body>

     <h4>An editable list of books in JSON format</h4>

     <h5>The book list, stored as a JSON object in the webpage:</h5>

     <pre><code><!-- The SHOWBOOKS function displays the book list here --></code></pre>

    <h5>The book list is displayed in the Iframe as soon as the HTML page is opened.</h5>

    <iframe frameborder="0"></iframe>

  </body>

 

 

</html>

 

 


(C) 2019 Altova GmbH