对于用户身份验证,我的客户端重定向到服务器并获取用户数据,并将其存储到客户端的 php 本机会话中。在此过程中,服务器重定向回相同的请求 url,因此如果没有数据响应,客户端将不会有任何会话,我的脚本将进入重定向循环,因为只有在未找到会话时才会检查重定向到服务器.
现在为了避免这种情况,我在第一次使用 uniqid('prefix_') 函数后创建一个随机会话。但是如果有人刷新页面,请求应该再次去服务器进行身份验证。
为此,我正在检查会话 cookie 值。如果 cookie 有我给定的前缀(在 uniqid 中给出),那么它不是一个有效的会话并重定向到服务器。我想知道这个选项有多可靠?我还有其他解决方案吗?
更新:我的 validSession 函数如下所示:
public function validSession() {
if ($sessionCookie !== null && substr($sessionCookie,0,7) !== 'prefix_')
return true;
return false;
}
因此,如果会话 cookie 包含用于在服务器没有数据的情况下创建随机会话的前缀,则此函数将返回 false,我将决定重定向到服务器以进行用户会话。