利用cookie实现跨域,可以称为SSO单点登录
A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码
view plaincopy to clipboardprint?
1. <?php
2. //清空cookies
3. setcookie("mywinduid");
4. //为B页面权限设置cookie, setcookie("mywinduid",$winduid,time()+60*60*24);//设置为1天失效,下面为关闭浏览器失效
5. setcookie("mywinduid",$winduid);
6. ?>
A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie
getcookies.php 代码如下
view plaincopy to clipboardprint?
1. <?php
2. $callback = $_GET['jsoncallback'];
3. $mywinduid = $_COOKIE['mywinduid'];//多个参数的话以","隔开,例如json_encode(array('winduid'=>$winduid,'msg'=>$msg));
4. //可以用json_encode自动转换,也可以手写json格式 $json_data = '{"mywinduid":'.$mywinduid.'}';
5. $json_data = json_encode(array('mywinduid'=>$mywinduid));
6. //必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参数
7. echo $callback.'('.$json_data.')';
8. ?>
在需要查询A网站cookie的B网站页面中增加如下代码
view plaincopy to clipboardprint?
1. <script type="text/javascript" src="jquery-1.6.1.min.js"></script>
2. <script type="text/javascript" src="jquery.cookie.js"></script>
3. <script type="text/javascript">
4. $(function(){
5. $("#adminwhj").click(function(){//点击B网站中的登录按钮,这地方也可以不需要用click,直接打开页面就获取cookie
6. var myurl = "http://www.a.com/getcookies.php?action=getcookie";
7. $.getJSON(myurl+"&jsoncallback=?", function(data){
8. if(data.mywinduid!="" && data.mywinduid!= null){
9. var winduid = data.mywinduid;
10. if((winduid==4)||(winduid==2)){
11. $.cookie('mywinduid',winduid);//设置cookies
12. location.reload();//刷新页面
13. }else{
14. alert("您没有管理权限!");
15. }
16. }else{
17. alert("请在www.a.com登录后再进行管理");
18. }
19. })
20. })
21. })
22. </script>
下面是B网站的这个页面中需要做权限判断的代码
view plaincopy to clipboardprint?
1. <!--需要权限的判断开始-->
2. <?
3. $winduid=$_COOKIE["mywinduid"];
4. if (($winduid==4)||($winduid==2))
5. {<!--管理需要的代码-->}
6. ?>
整个原理就是,B网站上文件可以通过A网站的getcookies.php来获取A网站的cookie,然后在B网站的页面提供权限判断,这样B网站中不需要再单独做用户登录
分享到:
相关推荐
SSO的简单实现SSO的简单实现SSO的简单实现
java 基于 Cookie 的 SSO 中间件 kisso 低代码
SSO单点登录【基于cookie二级域名下跨域共享】的简单实现。
spring boot整合spring security 实现SSO单点登陆 完整DEMO. ...2、先后启动SsoServer、sso-resource、sso-client1、sso-client2 3、访问http://sso-taobao:8083/client1/ 或 http://sso-tmall:8084/client2/
cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统
该资源在.NET Core2.0+MVC环境下 用Redis/Memory+cookie实现的sso单点登录,开发工具为vs2017,详情会有博客说明
主要介绍了基于JWT实现SSO单点登录流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
利用springMvc 实现的简单的单点登录Demo,内含三个小Mavn项目分别是 1、认证中心SSOServer 2、子系统1SSOClient1 3、子系统2SSOClient2 文章请参考 http://blog.csdn.net/qq_31183297/article/details/79419222
CAS实现sso单点登录原理,可以方便技术人员理解
公司需要做统一的sso单点登录,由于CAS过于重量级和复杂。所以就自己基于springMVC mybatis redis缓存实现了SSO单点登录。mark一下!
CAS框架SSO的实现
因为公司要实现SSO单点登录的效果,最近在网上找了一些资料,但是都没有好用的, 所以自己用PHP 使用TP5.0 实现了SSO单点登录,可以跨多个域名。 下载后在本地配置好 A,B,C 3个网站,就可以模拟效果了。
NULL 博文链接:https://cmm.iteye.com/blog/385848
OAuth2+ SSO实现单点登录,包括源码...网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么回事儿,简直让人抓狂,尤其是对于我这样的菜鸟。几经曲折,终于搞定了,决定记录下来,以便后续查看
新浪微博如何实现 SSO
内含SSO单点登录的实现源代码,以及实现原理详解,有需要的可以看看。
下载前请参考这篇文章http://blog.csdn.net/javaee_ssh/article/details/25998553
使用 spring security 基于oauth 2.0 实现 sso 单点登录Demo spring boot + spring security + spring security oauth
一个实现SSO方案的构想SSO单点登陆解决方案
java 基于 Cookie 的 SSO 中间件 kisso 低代码组件库.zip