验证只有一个用户登录帐户

Validate that only one user logs into an account

我正在开发一个网站,我想在其中设置一些安全程序,并且我想确保只有一个用户可以从一台计算机登录他的帐户。

那么,有什么想法可以用 php 甚至 javascript 代码来处理吗?

注意 : 我试过$_SERVER['REMOTE_ADDR']但是IP不稳定

您可以只在用户 table (is_online) 中添加一列。当用户登录时,设置为 true。注销时,设置为 false。您也需要使用会话。保存用户会话以进行验证。

if ( user.is_online ){
    if ( user.session_id == this.session.id )
        //OK, same user log in.
    else
        //OPS, different sessions, other user log in.
}
else {
    //user log in first time
}

对不起,我的代码很糟糕,我没有在 php 中编码,但是这个验证必须是服务器端。

@更新

如果用户没有登出就离开了网站,您需要再添加一项验证。检查会话状态是否处于活动状态。如果不是,请保留 is_online true 并将会话更改为新会话。在 session_status().

中了解更多信息

也许,您需要 运行 一些 cron 来销毁不活动的会话。我不知道这是不是最好的选择。