加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JSONP 模拟简单的单点登录

发布时间:2020-12-16 19:23:38 所属栏目:百科 来源:网络整理
导读:关于JSONP 的介绍请参考: http://chinazblz.blog.163.com/blog/static/93939173201042485426995/ http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html http://blog.csdn.net/veverrr/article/details/7080051 本实验模拟在两个不

关于JSONP 的介绍请参考:

http://chinazblz.blog.163.com/blog/static/93939173201042485426995/

http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

http://blog.csdn.net/veverrr/article/details/7080051


本实验模拟在两个不同域 www.sso.com 和 www.ss.com 下进行单向单点登录。

但用户访问 www.sso.com 时(A 服务器),会在浏览器中种下 cookie。

当用户访问 www.ss.com 时(B 服务器),则会通过jsonp 从本浏览器的 sso.com 域中获取到cookie中的用户名,然后在页面进行显示

在 A 服务器中的登录和种Cookie,比较容易理解,这里重点讲一下 在A 服务器中的 jsonp.php

jsonp.php 是 A 服务器和B服务器进行通信的桥梁。在jsonp.php中要完成 读取和输出Cookie中 username 的值:


<?php

$callback = isset(GET['callback']) ? GET['callback'] : '';
$json = COOKIE['username'];
$json = '"'.$json.'"';
if (!empty($callback)) 
{ 
   $json = $callback . '(' . $json . ')';
}
echo $json;
?>


在B服务器中则需要做2件事情:
1. 定义响应函数response 。 在响应函数中,对jsonp.php 返回的用户名进行显示
2. 通过script 标签,引入 jsonp.php?callback = response

<head>
<script type="text/javascript">
function response(words){ //通过cookie判断是否登录
if(typeof(words) != 'undefined'){

var h1 = document.getElementById('welcome');
h1.value = words;
}
}
</script>
</head>
<body>

<input type="text" id="welcome" />
<script type="text/javascript" src="http://www.sso.com/SSO/jsonp.php?callback=response"></script>


</body>
</html>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读