对于用户认证,我的客户端重定向到服务器并获取用户数据,并将其存储到客户端的php本地会话中。在这个过程中,服务器重定向到相同请求的url,所以如果没有数据响应,客户端不会有任何会话,并且我的脚本将在重定向循环中结束,因为只有在未找到会话时才会检查重定向到服务器。检查会话的uniqid
现在为了避免这种情况,我使用uniqid('prefix_')函数在第一个流之后创建了一个随机会话。但是如果有人刷新页面,请求应该再次到服务器进行认证。
为此,我正在检查会话cookie值。如果cookie有我给定的前缀(以uniqid给出),那么它不是有效的会话并重定向到服务器。我想知道这个选项有多可靠?我有其他解决方案吗?
更新: 这里我有多么validSession函数看起来像:
public function validSession() {
if ($sessionCookie !== null && substr($sessionCookie,0,7) !== 'prefix_')
return true;
return false;
}
所以,如果会话cookie包含用于从服务器中没有数据的情况下创建随机会话前缀,这个函数将返回我假,我会决定重定向到用户会话的服务器。
太多混乱没有代码..请将代码添加到您的问题中。 – 2011-05-18 11:24:09