查看: 1226|回复: 15
|
禁止两个相同的user account同时登陆web和wap-based system.
[复制链接]
|
|
因为我用同一个database来store data, web based and wap based都是用它.有什么办法可以做到禁止两个相同的user account同时登陆web和wap-based system?还有另一个问题就是,怎样禁止user用两个手机来同时登陆同一个wap system cause of security purpose. 完全没头绪...各位请帮帮忙.
先道谢! |
|
|
|
|
|
|
|
发表于 16-9-2006 08:21 AM
|
显示全部楼层
database多个field记录登陆。
signin enum('y', 'n')
if (signin==y)
echo 'Oledi signin';
else if (signin==n)
signin() |
|
|
|
|
|
|
|
发表于 16-9-2006 05:48 PM
|
显示全部楼层
要注意, 随时会发生User被Lock的情况, 当上一个User没有好好Logout的话...... |
|
|
|
|
|
|
|
楼主 |
发表于 26-9-2006 11:03 AM
|
显示全部楼层
謝兩位的回復,現在可以在兩個電話上,禁止用在同一時間用同一個戶口登陸.可是,還不能禁止一個戶口在website 和 WAP同時登陸.我要做到,user不管用兩個電話,還是不同的web browser.也不能同時登陸同樣的戶口在同一時間.怎樣解決呢? |
|
|
|
|
|
|
|
发表于 6-10-2006 11:26 PM
|
显示全部楼层
原帖由 S!@T 于 26-9-2006 11:03 发表
謝兩位的回復,現在可以在兩個電話上,禁止用在同一時間用同一個戶口登陸.可是,還不能禁止一個戶口在website 和 WAP同時登陸.我要做到,user不管用兩個電話,還是不同的web browser.也不能同時登陸同樣的戶口在同一時 ...
直接写进database,不要把signin的value写进session。这个是跟你的database design 有关,如果你有两个database(一个wap,一个web),那么在user login时,update两个database的signin field to "yes",不就可以了吗? |
|
|
|
|
|
|
|
发表于 12-10-2006 06:51 PM
|
显示全部楼层
那user没有好好logout不就成为了deathlock了吗? |
|
|
|
|
|
|
|
发表于 12-10-2006 07:15 PM
|
显示全部楼层
原帖由 lawTY 于 12-10-2006 06:51 PM 发表
那user没有好好logout不就成为了deathlock了吗?
可以加个时限来控制。 |
|
|
|
|
|
|
|
发表于 12-10-2006 11:25 PM
|
显示全部楼层
原帖由 hui_wooi 于 12-10-2006 07:15 PM 发表
可以加个时限来控制。
这个几乎不是解决方案。
我刚登录,然后不小心按到关闭,那么就得登上一段时间才能再登录?
这种情况我们玩游戏的时候就会说: account is stucking, msn your friend and tell GM this. So they will reset your connection status....
你可以说这个不是 bug 来的。 |
|
|
|
|
|
|
|
发表于 13-10-2006 12:22 AM
|
显示全部楼层
原帖由 Justin 于 12-10-2006 11:25 PM 发表
这个几乎不是解决方案。
我刚登录,然后不小心按到关闭,那么就得登上一段时间才能再登录?
这种情况我们玩游戏的时候就会说: account is stucking, msn your friend and tell GM this. So they will ...
那请教下,有什么更好的方法? |
|
|
|
|
|
|
|
发表于 13-10-2006 01:55 AM
|
显示全部楼层
原帖由 hui_wooi 于 13-10-2006 12:22 AM 发表
那请教下,有什么更好的方法?
不如 kick-out 上一個用戶吧
也就是說, 只有最後一個 login 的才 valid |
|
|
|
|
|
|
|
发表于 13-10-2006 10:54 AM
|
显示全部楼层
原帖由 flashang 于 13-10-2006 01:55 AM 发表
不如 kick-out 上一個用戶吧
也就是說, 只有最後一個 login 的才 valid
嗯,这方法不错,很多IM都在用。 |
|
|
|
|
|
|
|
发表于 13-10-2006 12:03 PM
|
显示全部楼层
原帖由 flashang 于 13-10-2006 01:55 AM 发表
不如 kick-out 上一個用戶吧
也就是說, 只有最後一個 login 的才 valid
我很多点不懂下下。。。。
可以解释没有???
谢谢 |
|
|
|
|
|
|
|
发表于 14-10-2006 11:50 PM
|
显示全部楼层
原帖由 lawTY 于 13-10-2006 12:03 PM 发表
我很多点不懂下下。。。。
可以解释没有???
谢谢
例如每次 login 的時候, 會把其他相同 id 的 connection 強迫斷線
使到只有最後 login 的才被承認,
那麼, 就算你在公司 login 後忘了 logout,
回到家再 login 後, 公司的就會被強迫斷線了 |
|
|
|
|
|
|
|
发表于 15-10-2006 01:12 AM
|
显示全部楼层
原帖由 flashang 于 14-10-2006 11:50 PM 发表
例如每次 login 的時候, 會把其他相同 id 的 connection 強迫斷線
使到只有最後 login 的才被承認,
那麼, 就算你在公司 login 後忘了 logout,
回到家再 login 後, 公司的就會被強迫斷線了
这个方法不错
其实就是说每个User Login后都会有一个Random Generate的Key, 如果Key不对的话就直接Logout。 只需要在User的Table里加多一个Field叫Login Key就行了, 然后每次就去Verify看看这个Key和Assign给User的一样吗! |
|
|
|
|
|
|
|
发表于 25-10-2006 12:53 AM
|
显示全部楼层
原帖由 flashang 于 13-10-2006 01:55 AM 发表
不如 kick-out 上一個用戶吧
也就是說, 只有最後一個 login 的才 valid
楼主讲的是在网页的吧?如果不是,当我没讲过。。。
网页和IM不同,如果用这个方法的话,当A电脑login后,B电脑login时,A就被“kick”,这时A电脑按Refresh,那A电脑的cookie会自动login,那结果B的就被“kick”
结果这样“kick来kick去”,最后login的(无论A和B都是valid),那这和两边同时login又有什么不同?
线上游戏和IM就不同,因为用着线上游戏和IM的用户如果被“kick”的话,对他们会造成影响(比如扣经验值等),可是网页的用户被“kick”是没有影响的。。。
简单来说就是网页用户不是连线(login)着的,而是每次Refresh或进入页面时都login一次 |
|
|
|
|
|
|
|
发表于 4-11-2006 08:23 PM
|
显示全部楼层
在DB..做一个Session Table...
每一次登陆成功后都会加一個...如果有离开的话就把Record拿掉..
然后就写一个Script.. 做Cron Job(Linux)或者Schedule Task(Windows)..
每次都跑那个Script...检查使用者还在不在线上,如果不在线上就把在Session Table内的Record拿掉..
3~5分钟跑一次...使用者等个3~5分钟不会太久...
Script要如何写我不教了,因为会破坏行内生意...程式员就没生意做了... |
|
|
|
|
|
|
| |
本周最热论坛帖子
|