网站A:代码:网站a的login。html页面刷新,使用jsonp方式将信息传递给b.com的login.php中去,只需要在b.com中设置一下跨域以及接收参数,然后存到cookei即可,

注意:网站A的jsnop传值后,网站B的login.php文件不能放到浏览器中打开刷新查看传递的值,这样会接收不到传递过来的值,需要到另外一个页面打印生成的cookei值来显示,login.php只做逻辑处理,要显示

效果需要到cookei.php中打印效果

网站A的login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery.js"></script>
<script type="text/javascript">
$(function(){ $.ajax({
type : 'get',
url:'http://b.com/login.php',
data : {
uid : '333333',
password : '858888',
},
cache :false,
jsonp: "callback",
jsonpCallback:"success",
dataType : 'jsonp',
success:function(data){
//alert(data);
},
error:function(data){
//alert('error');
}
});
});
</script>
</head>
<body>
<input id='inputtest' value='546' name='inputtest'>
<div id='testdiv'></div>
</body>
</html>

网站B的login.php页面,本页面只做逻辑处理,千万别用来打印显示任何东西,否则会清空jsonp传过来的值

<?php
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Headers:Authorization');
header("Access-Control-Allow-Methods: GET, POST, DELETE");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: Content-Type, X-Requested-With, Cache-Control,Authorization"); file_put_contents('test.txt',$_GET);
setcookie("user_ticket",$_GET['uid'], time()+3600*24 ,"/");
$_COOKIE['user_ticket'] = $_GET['uid'];

网站B的cookei.php页面,本页面用来显示login.php页面中生成的cookie的值,用来查看效果

<?php

print_r( $_COOKIE);

自此jsonp跨域传值完成,此功能可用来进行单点登录,

用户1在网站A登陆后,在cookie中会有本用户的sessionid来判别身份,将sesion信息存在redis中去,并将本用户信息存在cookei中或者在登录成功页面写两个隐藏域

吧用户信息放到隐藏域里面,使用jsonp将用户信息,发送给网站B,

网站B使用上述方法,获取到用户1的信息后,存到cookei中去,然后将cookei中的用户信息去与redis中信息比对,看看是否登录过期,以及安全验证,

如果验证通过,将用户1信息,存到网站B的session或者cookei中去,实现单点登录

jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项的更多相关文章

  1. C#实现支持单点登录的一个存储用户信息的类

    网上有很多介绍单点登录的文章,但多为架构设计以及概念性文章,而本文将介绍单点登录的具体具体实现 利用哈希表,作为保存登录用户的队列        private static Hashtable m_ ...

  2. 深入理解跨域SSO(单点登录)原理与技术

    一:SSO体系结构 SSO ​ SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  3. 深入理解跨域SSO单点登录原理与技术

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 一:SSO体系结 ...

  4. 可跨域的单点登录(SSO)实现方案【附.net代码】

    SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...

  5. vue+springboot前后端分离实现单点登录跨域问题处理

    最近在做一个后台管理系统,前端是用时下火热的vue.js,后台是基于springboot的.因为后台系统没有登录功能,但是公司要求统一登录,登录认证统一使用.net项目组的认证系统.那就意味着做单点登 ...

  6. [转] 可跨域的单点登录(SSO)实现方案

    SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...

  7. 可跨域的单点登录(SSO)实现方案

    可跨域的单点登录(SSO)实现方案 SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源( ...

  8. 跨域分布式系统单点登录的实现(CAS单点登录)

    1. 概述 上一次我们聊了一下<使用Redis实现分布式会话>,原理就是使用 客户端Cookie + Redis 的方式来验证用户是否登录. 如果分布式系统中,只是对Tomcat做了负载均 ...

  9. C# 脚本代码自动登录淘宝获取用户信息

    C# 脚本代码自动登录淘宝获取用户信息   最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可 ...

随机推荐

  1. JS中substring与substr的用法

    substring方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引javascript 参数 描述 start 必需.一个非负 ...

  2. 07-HTML-内嵌标签

    <html> <head>  <title>内嵌标签学习</title>  <meta charset="utf-8"/> ...

  3. 解决VS2015单元测试“未能设置用于运行测试的执行上下文”问题

    VS的单元测试在进行测试时并不像普通Exe会为你提示xx文件未找到,而是类似下面这样: 测试名称: 部署文件到Linux测试全名: unittest::SmartDispatch::部署文件到Linu ...

  4. 【PHPStorm使用手册】如何设置字体大小?

    方案一:鼠标滚轮设置 打开窗口 file -> settings -> Editor -> General, 勾上选项“Change font size(Zoom) with Ctr ...

  5. java中带图片按钮的大小设置

    在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题,那就是按钮的大小默认按照图片的大小来显示,这大大降低了界面的美观程度: 按照方法: JB ...

  6. MyBatis笔记----MyBatis查询表全部的两种方法:XML与注解

    查询单条信息的在 http://www.cnblogs.com/tk55/p/6659285.html  已经有了 XML 修改UserMapper.xml <?xml version=&quo ...

  7. 解决Unable to load native-hadoop library for your platform

    使用hadoop fs相应命令时候总是出现 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat ...

  8. shell编程—运算符(五)

    算术运算符 expr 是一款表达式计算工具,使用它能完成表达式的求值操作 加法:expr a+b 两个数相加使用的是反引号`而不是单引号‘’ 减法:expr a-b 乘法:expr a\*b 除法:e ...

  9. vue分页组件二次封装---每页请求特定数据

    关键步骤: 1.传两个参数:pageCount (每页条数).pageIndex (页码数): 2.bind方法的调用 <!-- 这部分是分页 --> <div class=&quo ...

  10. 极致精简的webservice集成例子

    极致精简的webservice例子   看了网上好多关于webservice的例子,基本上对初学者来说都是模棱两可云里雾里,现在,我将网上关于webservice的讲解提炼出来,通过一个最简单使用并且 ...