怎么限制一个用户只能在一台机器上登录

汪雷_007 发布于 2013/11/06 11:13
阅读 2K+
收藏 2
怎么限制一个用户只能在一台机器上登录,如果用户在A机器上登录了,在B机器上将无法登录

大家有什么好的处理办法么

加载中
0
华兹格
华兹格
记录此A机器的标示
汪雷_007
汪雷_007
是在数据加标识 如果登录成功了?
0
月影又无痕
月影又无痕

用户登录时,随机生成一个长字符串并存入cookie中,用于唯一标识此机器

0
Solowave
Solowave

引用来自“月影又无痕”的答案

用户登录时,随机生成一个长字符串并存入cookie中,用于唯一标识此机器

你都说了是随机的了,又怎么用来作为标识?
0
jingdor
jingdor

判断用户是否登录了 登录了 就不能登录


0
hantsy
hantsy
Spring Securtiy 的 Session Management 可以限制一个用户只能同时存在一个 Session,可以达到这个目的。
汪雷_007
汪雷_007
ok 去看看
0
月影又无痕
月影又无痕

引用来自“Solowave”的答案

引用来自“月影又无痕”的答案

用户登录时,随机生成一个长字符串并存入cookie中,用于唯一标识此机器

你都说了是随机的了,又怎么用来作为标识?

用户登录后,将这个标识串、用户ID记录到服务器中,数据库、session中均可。

每次请求到来时,检查cookie中提供的标识串是否和服务器上记录的标识串一致即可。

0
雨翔河
雨翔河
得到MAC地址,登录后就绑定MAC。
0
飞翔的土拨鼠
飞翔的土拨鼠

你是指登陆过一次以后永远只能在一台机子上登陆的话,

那么在用户第一次登陆的时候 获取他的网卡地址 ,然后存储在数据库中 ,以后每次登陆的时候 都进行一次验证,

如果你是指一台机子登陆时,在其他机器上无法同时登陆的话,那么使用Session 判定是否存在当前用户的Session 如果没有的话 既可以登陆,如果有 不能登陆。

汪雷_007
汪雷_007
0
罪恶的花生
罪恶的花生

B点无法登陆因为A点没有关闭系统或退出系统,如果B点能成功登陆是A点,首先用户未登录任何系统,其次是A点登录失效,

失效有几个方面可以考虑

1用户登录上次是否同一台机器,如果是,直接登录,

2用户登录时上次登录用户响应时间已经超出规定时间范围,

系统需要记录每个用户登录的机器,可以cooike一个GUID在本地,服务业存储,以此作为交互标识,每次根据该标识定期通知服务器登录用户还在使用。当然每个用户只能由一个GUID,

其实如果用户B想登陆可以强行踢出A用户的做法才是最好的,如果系统在使用过机器挂了,那么用户只能等待用户超时才能再次登录,如果很急的事情,那么对不起,系统就是这样设计的。

汪雷_007
汪雷_007
嗯 大神
返回顶部
顶部