0%

单点登录跨域访问[原创]

这里没有原理只有实践

1.Cookie方式实现传递.(不太靠谱)
$_COOKIE[‘sid’]=session_id();//第一个域
session_id($_COOKIE[‘sid’]);//到第二个域查看PHPSESSID;
2.Session
2.1 目前我们有 a.ioqx.com ,b.ioqx.com ,c.ioqx.com 这些个二级域实现跨域
只要在文件开头写上ini_set(‘session.use_trans_sid’, 1);实现session共享即可解决
代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

//a.ioqx.com/index.php
//b.ioqx.com/index.php
//c.ioqx.com/index.php
//全部使用以下代码;
date_default_timezone_set("Asia/Shanghai");
session_save_path('E:\\session\\');
ini_set('session.use_trans_sid', 1);//关键
session_start();
echo $_SERVER['HTTP_HOST'],'<br />';
if (isset($_SESSION['key']) && $_SESSION['key'] == 'zdz') {
echo '欢迎登陆!';
} else {
$form='
<form action="" method="get">
用户名:<input type="text" name="name" />
密 码:<input type="password" name="pass" />
<input type="submit" value="提交" />
</form>';
echo $form;
}


if (isset($_GET['name']) && isset($_GET['pass'])) {
if ($_GET['name'] == 'ioqx' && $_GET['pass'] = 'ioqx') {
$_SESSION['key'] = 'ioqx';
}
}
//验证结果就看PHPSESSID是否一致;或者登陆的时候去其他的域看看是否同时登录

2.2session如果是在访问量超大的地方最好单独配置一台服务器专门存取SESSION信息/或者入库/缓存
3.如果夸大域名 www.ioqx.comwww.xnrw.com 只能登陆的是时候同时种SESSION;

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!