github.com/gravity-devs/liquidity@v1.5.3/client/docs/swagger-ui/oauth2-redirect.html (about)

     1  <!doctype html>
     2  <html lang="en-US">
     3  <body onload="run()">
     4  </body>
     5  </html>
     6  <script>
     7      'use strict';
     8      function run () {
     9          var oauth2 = window.opener.swaggerUIRedirectOauth2;
    10          var sentState = oauth2.state;
    11          var redirectUrl = oauth2.redirectUrl;
    12          var isValid, qp, arr;
    13  
    14          if (/code|token|error/.test(window.location.hash)) {
    15              qp = window.location.hash.substring(1);
    16          } else {
    17              qp = location.search.substring(1);
    18          }
    19  
    20          arr = qp.split("&")
    21          arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';})
    22          qp = qp ? JSON.parse('{' + arr.join() + '}',
    23                  function (key, value) {
    24                      return key === "" ? value : decodeURIComponent(value)
    25                  }
    26          ) : {}
    27  
    28          isValid = qp.state === sentState
    29  
    30          if ((
    31            oauth2.auth.schema.get("flow") === "accessCode"||
    32            oauth2.auth.schema.get("flow") === "authorizationCode"
    33          ) && !oauth2.auth.code) {
    34              if (!isValid) {
    35                  oauth2.errCb({
    36                      authId: oauth2.auth.name,
    37                      source: "auth",
    38                      level: "warning",
    39                      message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
    40                  });
    41              }
    42  
    43              if (qp.code) {
    44                  delete oauth2.state;
    45                  oauth2.auth.code = qp.code;
    46                  oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
    47              } else {
    48                  let oauthErrorMsg
    49                  if (qp.error) {
    50                      oauthErrorMsg = "["+qp.error+"]: " +
    51                          (qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
    52                          (qp.error_uri ? "More info: "+qp.error_uri : "");
    53                  }
    54  
    55                  oauth2.errCb({
    56                      authId: oauth2.auth.name,
    57                      source: "auth",
    58                      level: "error",
    59                      message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
    60                  });
    61              }
    62          } else {
    63              oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
    64          }
    65          window.close();
    66      }
    67  </script>