佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1178|回复: 15

禁止两个相同的user account同时登陆web和wap-based system.

[复制链接]
发表于 16-9-2006 12:58 AM | 显示全部楼层 |阅读模式
因为我用同一个database来store data, web based and wap based都是用它.有什么办法可以做到禁止两个相同的user account同时登陆web和wap-based system?还有另一个问题就是,怎样禁止user用两个手机来同时登陆同一个wap system cause of security purpose. 完全没头绪...各位请帮帮忙.
先道谢!
回复

使用道具 举报


ADVERTISEMENT

发表于 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了吗?
回复

使用道具 举报

Follow Us
发表于 12-10-2006 07:15 PM | 显示全部楼层
原帖由 lawTY 于 12-10-2006 06:51 PM 发表
那user没有好好logout不就成为了deathlock了吗?

可以加个时限来控制。
回复

使用道具 举报

Justin 该用户已被删除
发表于 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 来的。
回复

使用道具 举报


ADVERTISEMENT

发表于 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要如何写我不教了,因为会破坏行内生意...程式员就没生意做了...
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-6-2024 01:53 PM , Processed in 0.068836 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表