二级域名之间共享cookie

http://site1.domain.com/setcookie.php

<?php
$result = setcookie('cookie_name', '这是在site1.domain.com设置的cookie', time() + 3600, '/', '.domain.com');
var_dump($result); // bool(true)

http://site2.domain.com/getcookie.php

<?php
if (isset($_COOKIE['cookie_name'])) {
    echo $_COOKIE['cookie_name']; // 这是在site1.domain.com设置的cookie
} else {
    echo '$_COOKIE[\'cookie_name\'] 不存在';
}

想让二级域名之间可以共享cookie的关键是要设置setcookie()函数的第五个参数为“.domain.com”。

二级域名共享cookie的主要使用场景是实现单点登录,如我们在www.jd.com登录之后,再访问list.jd.com或item.jd.com就已经是登录状态,而不需要再次登录。

PS:共享cookie实现单点登录的前提条件是所有站点域名使用同一个顶级域名,不同顶级域名(如domain1.com和domain2.com就是不同的顶级域名)不能使用共享cookie的方式,只能使用URL携带token跳转的方式实现单点登录。

Copyright © 2024 码农人生. All Rights Reserved