我正在寻找有关如何销毁 PHP 中的特定会话的见解。通过合作伙伴网站,用户使用令牌登录主网站并获得完整的会话。
如果用户从合作伙伴网站注销,合作伙伴网站也可以调用销毁函数。然后我们还应该注销我们自己的用户。
对此最好的方法是什么?这Zend_Sessiondestroy 方法不接受参数,与 PHP 函数类似会话销毁两者都不做。
我正在考虑两种选择:
直接从文件/内存缓存中删除会话信息,但更喜欢比这更“干净”的方法。
检查每个页面请求是否是“令牌”用户;然后通过维护列表来检查他们的令牌是否已过期。这会增加繁忙网站的开销,但可能是我唯一的选择。
或者还有我没有看到的第三种/更好的方法吗?
无需自行进行会话处理。
session_id() 可以接受一个参数,即您要使用的会话 ID。
因此,当您将用户传递到合作伙伴站点时,请传递他们的 session_id (或某些令牌或其他内容)。
然后允许合作伙伴站点点击如下脚本:
杀死用户会话.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 脚本,并且用户的会话将在您的服务器上被销毁。
当然,您可能想通过某种方法限制对kill-user-session.php 的访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)