JavaScript實現單點登錄的示例
項目中遇到單點登錄這個問題,當點擊鏈接的時候跳轉到另一個系統中并實現自動登錄進去,直接進去系統的頁面
因為不同的系統涉及到跨域的問題,所以使用nginx來解決跨域的問題
先跳轉到另一個系統的一個頁面,在這個頁面里實現登錄操作再跳轉到系統中我們需要的頁面
還有一個問題就是登錄的時候需要用戶名和密碼,用戶名和密碼不是固定的,需要動態獲取,所以跳轉到過渡頁面的時候需要攜帶參數
攜帶參數是通過url傳遞的,這里用戶名和密碼使用了簡單的base64加密
過渡頁面接受參數
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單點登錄的資料請關注好吧啦網其它相關文章!
相關文章: