ecshop二次開發之單點登陸

單點登陸(SingleSignOn),簡稱爲SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只須要登陸一次就能夠訪問全部相互信任的應用系統。php


當用戶第一次訪問應用系統1的時候,由於尚未登陸,會被引導到認證系統中進行登陸;根據用戶提供的登陸信息,認證系統進行身份校驗,若是經過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候,就會將這個ticket帶上,做爲本身認證的憑據,應用系統接受到請求以後會把ticket送到認證系統進行校驗,檢查ticket的合法性。若是經過校驗,用戶就能夠在不用再次登陸的狀況下訪問應用系統2和應用系統3了。
html

單點登陸:用戶只需登陸一次,便可經過單點登陸系統(eTrueSSO)訪問後臺的多個 應用系統,二次登陸時無需從新輸入用戶名和密碼
python

代碼參考:web


ui.PHPajax

  1. <?php  
  2. session_start();  
  3. $_SESSION['login']=true;  
  4. if(isset($_GET['callback'])){  
  5.     exit($_GET['callback']."(".json_encode($rs).")");  
  6. }else{  
  7.     header("location:login.php");  
  8. }  






localhost/login/ui.phpjson

  1. <?php  
  2. session_start();  
  3. $_SESSION['login_getinfo']="zhangsan";  
  4. $rs['error']=0;  
  5. if(isset($_GET['callback'])){  
  6.     exit($_GET['callback']."(".json_encode($rs).")");  
  7. }else{  
  8.     header("location:login.php");  
  9. }  


另一個登陸頁面:
  1. <?php  
  2. header("content-type:text/html;charset=utf-8");  
  3. session_start();  
  4. print_r($_SESSION);  
  5. if(isset($_SESSION['login_getinfo'])){  
  6.     echo "登錄成功";  
  7.     echo "<a href='logout.php'>退出</a>";  
  8.     ?>  
  9.         <script src='jq.js'></script>  
  10.     <script>  
  11.         $.ajax({url:"http://www.php8.com/study8/login/ui.php",dataType:'jsonp',jsonCallback:'testlogin',success: function(txt){  
  12.                
  13.             }});  
  14.     </script>  
  15.     <?php  
  16. }else{  
  17.     ?>  
  18.     帳號:<input type='text' name='username'/>  
  19.     密碼:<input type='password' name='pwd'/>  
  20.     <input type='submit' value='登錄' onclick="login()"/>  
  21.   
  22.     <script src='jq.js'></script>  
  23.     <script>  
  24.         function login(){  
  25.             var username=$("input[name=username]").val();  
  26.             var pwd=$("input[name=pwd]").val();  
  27.             $.ajax({url:"http://www.web.com/user.php?username="+username+"&pwd="+pwd+"&callback=testlogin",dataType:'jsonp',jsonCallback:'testlogin',success: function(txt){  
  28.                 if(txt.error==0){  
  29.                     location.href="ui.php?username="+txt.username+"&login="+txt.login;  
  30.                 }else{  
  31.                     alert(txt.msg);  
  32.                 }  
  33.             }});  
  34.         }  
  35.     </script>  
  36.     <?php  
  37. }  
  38. ?>  

退出頁面logout.php
  1. <?php  
  2. session_start();  
  3. session_destroy();  
  4. header("location:login.php");  

頁面的不一樣之處:


登錄不一樣之處:session

相關文章
相關標籤/搜索