| 
| 
查看: 1317|回复: 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要如何写我不教了,因为会破坏行内生意...程式员就没生意做了...
 | 
 |  |  |  |
 
|  |  |  
|  |  |  |  | 
            本周最热论坛帖子 |