JavaScriptがシングルポイント登録を実現した例


項目の中で単点登録という問題が発生しました。リンクをクリックすると別のシステムに移動し、自動ログインを実現して、直接にシステムのページに入ります。
異なるシステムはドメインをまたぐ問題に関連しているので、nginxを使ってドメインをまたぐ問題を解決します。
先に他のシステムのページにジャンプして、このページでログイン操作を実現してからシステムに必要なページにジャンプします。
もう一つの問題はログインする時にユーザー名とパスワードが必要です。ユーザー名とパスワードは固定されていません。動的に取得する必要があります。だから遷移ページにジャンプする時はパラメータを携帯する必要があります。
携帯パラメータはurlを通じて伝達されます。ここではユーザー名とパスワードは簡単なbase 64を使って暗号化されています。

遷移ページのパラメータ

var params = window.location.search;
  const params1 = params.match(/=(\S*)&/)[1];
  const params2 = params1.split("=")[1];
 
  const login = params1.split("&")[0];
  const pass = params1.split("=")[1];
  const url = params.split("url=")[1];

  var postData = {
    "login": login,
    "password": pass
  };

  postData = (function(obj){ //   post      .
    var str = "";
    for(var prop in obj){
      str += prop + "=" + obj[prop] + "&"
    }
    return str;
  })(postData);

  var xhr = new XMLHttpRequest();
  xhr.open("POST", "/api/authentication/login", true);
  xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xhr.onreadystatechange = function(){
    var XMLHttpReq = xhr;
    if (XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200) {
      location.replace(url);
    }
  };
  xhr.send(postData);
以上はJavaScriptが単点登録を実現した例の詳細です。JavaScriptについては単独で登録した資料がもっと多いので、他の関連記事に注目してください。