單點登陸(SingleSignOn),簡稱爲SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只須要登陸一次就能夠訪問全部相互信任的應用系統。php
當用戶第一次訪問應用系統1的時候,由於尚未登陸,會被引導到認證系統中進行登陸;根據用戶提供的登陸信息,認證系統進行身份校驗,若是經過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候,就會將這個ticket帶上,做爲本身認證的憑據,應用系統接受到請求以後會把ticket送到認證系統進行校驗,檢查ticket的合法性。若是經過校驗,用戶就能夠在不用再次登陸的狀況下訪問應用系統2和應用系統3了。
html
單點登陸:用戶只需登陸一次,便可經過單點登陸系統(eTrueSSO)訪問後臺的多個 應用系統,二次登陸時無需從新輸入用戶名和密碼
python
代碼參考:web
ui.PHPajax
- <?php
- session_start();
- $_SESSION['login']=true;
- if(isset($_GET['callback'])){
- exit($_GET['callback']."(".json_encode($rs).")");
- }else{
- header("location:login.php");
- }
localhost/login/ui.phpjson
- <?php
- session_start();
- $_SESSION['login_getinfo']="zhangsan";
- $rs['error']=0;
- if(isset($_GET['callback'])){
- exit($_GET['callback']."(".json_encode($rs).")");
- }else{
- header("location:login.php");
- }
另一個登陸頁面:
- <?php
- header("content-type:text/html;charset=utf-8");
- session_start();
- print_r($_SESSION);
- if(isset($_SESSION['login_getinfo'])){
- echo "登錄成功";
- echo "<a href='logout.php'>退出</a>";
- ?>
- <script src='jq.js'></script>
- <script>
- $.ajax({url:"http://www.php8.com/study8/login/ui.php",dataType:'jsonp',jsonCallback:'testlogin',success: function(txt){
-
- }});
- </script>
- <?php
- }else{
- ?>
- 帳號:<input type='text' name='username'/>
- 密碼:<input type='password' name='pwd'/>
- <input type='submit' value='登錄' onclick="login()"/>
-
- <script src='jq.js'></script>
- <script>
- function login(){
- var username=$("input[name=username]").val();
- var pwd=$("input[name=pwd]").val();
- $.ajax({url:"http://www.web.com/user.php?username="+username+"&pwd="+pwd+"&callback=testlogin",dataType:'jsonp',jsonCallback:'testlogin',success: function(txt){
- if(txt.error==0){
- location.href="ui.php?username="+txt.username+"&login="+txt.login;
- }else{
- alert(txt.msg);
- }
- }});
- }
- </script>
- <?php
- }
- ?>
退出頁面logout.php
- <?php
- session_start();
- session_destroy();
- header("location:login.php");
頁面的不一樣之處:
登錄不一樣之處:session