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

时间:2017-04-26 18:54:13

标签: javascript php security ip web-deployment

我正在开发一个网站,我想制定一些安全程序,我想确保只有一个用户只能从一台计算机上登录他的帐户。

那么,任何想法如何用php甚至javascript代码处理这个?

注意:我尝试使用$_SERVER['REMOTE_ADDR'],但IP不稳定。

1 个答案:

答案 0 :(得分:1)

您只需在users表(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中编写代码,但此验证必须是服务器端。

@ UPDATE

如果用户离开网站而未注销,则需要再添加一次验证。检查会话状态是否有效。如果没有,则将is_online保留为t​​rue并将会话更改为新会话。在session_status()了解详情。

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