gpt4 book ai didi

php - 如何销毁特定的 PHP session

转载 作者:搜寻专家 更新时间:2023-10-31 20:51:45 24 4
gpt4 key购买 nike

我正在寻找有关如何在 PHP 中销毁特定 session 的见解。通过合作伙伴网站,用户使用 token 登录主网站并获得完整 session 。

如果用户从合作伙伴网站注销,合作伙伴网站也可以调用销毁函数。然后我们还应该注销我们自己的用户。

最好的方法是什么? Zend_Session destroy 方法不接受参数,同样 PHP 函数 session_destroy 也不接受。

我正在考虑两种选择:

  1. 直接从文件/内存缓存中删除 session 信息,但更喜欢比这更“干净”的方法。

  2. 检查每个页面请求是否是“ token ”用户;如果然后通过维护列表检查他们的 token 是否过期。这会增加繁忙网站的开销,但这可能是我唯一的选择。

或者是否有我没有看到的第三种/更好的方法?

最佳答案

无需滚动您自己的 session 处理。

session_id() 可以带一个参数,即您要使用的 session ID。

因此,当您将用户转移到合作伙伴网站时,传递他们的 session_id(或一些 token ,或其他)。

然后允许合作伙伴网站点击这样的脚本:

杀死用户 session .php

<?php
/**
* Destroy any active session identified by $_POST['sid']
*/
session_id($_POST['sid']);
session_start(); //this line may not even be necessary
session_destroy(); //destroys that session.

因此,当用户在合作伙伴网站上注销时,合作伙伴网站会将 session_id(您提供给他们的)发布到您的 kill-user-session 脚本,并且用户的 session 会在您的服务器上销毁。

当然,您可能想通过某种方法限制对 kill-user-session.php 的访问。

关于php - 如何销毁特定的 PHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com