验证只有一个用户登录帐户
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 来销毁不活动的会话。我不知道这是不是最好的选择。
我正在开发一个网站,我想在其中设置一些安全程序,并且我想确保只有一个用户可以从一台计算机登录他的帐户。
那么,有什么想法可以用 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 来销毁不活动的会话。我不知道这是不是最好的选择。