zoukankan      html  css  js  c++  java
  • ecshop二次开发之单点登录

    单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。


    当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

    单点登录:用户只需登录一次,即可通过单点登录系统(eTrueSSO)访问后台的多个 应用系统,二次登录时无需重新输入用户名和密码

    代码参考:


    ui.PHP

    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.php

    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");  

    页面的不同之处:


    登陆不同之处:




  • 相关阅读:
    1.4redis小结--队列在抢购活动的实现思路
    1.3redis小结--配置php reids拓展
    redis小结 1-2
    redis小结 1-1
    pandas学习小记
    Python简单算法的实现
    python编码
    ThinkPHP中的__initialize()和类的构造函数__construct()
    js正则常用方法
    总结了下PHPExcel官方读取的几个例子
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147482.html
Copyright © 2011-2022 走看看