SSO单点登录在web上的关键点 cookie跨域

概述

其实WEB单点登录的原理挺简单的,抛开那些复杂的概念,简单来讲讲如何实现一个最基本的单点登录

1.首先需要有两个程序 例如: http://www.site-a.com 我们简称A http://www.stie-b.com 我们简称B
2.A 和 B 在登录认证逻辑上(通常使用的是session技术)将登录验证数据单独存在第三方的存储结构中,例如 ,数据库或者内存缓存服务器 关于这方面技术请自行去寻找相关资料
3.用户在登录A站点的时候,创建登录信息,并存起来 然后留出一个接口 可以讲一个已经登录的标识传递给B站点页面上
4.用户在访问B的时候 javascript从B页面上获取到A的登录标识,将这个标识发动到B的程序后端查询用户是否在A上具有登录信息,如果存在则登录确认,直接跳过B站点的登录逻辑

Read More

JavaScript跨域总结与解决办法

什么是跨域

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:

首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:

Read More

单点登录简单实现[PHP]

先说一下这样做的好处吧,先来三个屌丝域名:

www.openpoor.com

myspace.openpoor.com

passport.openpoor.com

大家都知道,虽然他们都是一个域名但主机名不同,依然不能共享cookie(没有设置到域名.openpoor.com),这就导致用户在这些域名之间切换的时候需要重新登录,这是不能忍受的,所以需要同步登录;

Read More