避免在rails 2.3.5中使用相同的用户名和密码进行多次登录

时间:2015-04-06 13:56:03

标签: ruby-on-rails ruby ruby-on-rails-2

我不想让用户在同一时刻使用相同的用户名和密码组合多次登录网站。我正在使用rvm 1.8.7。

例如,用户X使用username = sammy和password = sammy123登录。在用户X注销之前,用户Y无法使用相同的用户名= sammy和密码= sammy123从同一会话中的另一台计算机登录。

4 个答案:

答案 0 :(得分:0)

在数据库中创建一个表:[signin_user],包含3个属性 用户名 2. login_time 3. logout_time 每当用户登录时,将用户名和登录时间插入[signin_user]。 在要求用户登录的所有页面上,放置此条件:选中[signin_user]以查看用户的logout_time是否为空。

每当用户按下注销按钮时,请在[signin_user]中为该用户的名称设置logout_time。

如果有人尝试使用活动用户名和密码登录,请检查用户名和logout_time并显示一条消息,指出用户已登录。最重要的是,将该用户的logout_time设置为MULTIPLELOGIN。

如果该用户在任何其他计算机上登录,那么如果他刷新或导航到另一个页面,该网站将告诉他他已经退出。然后,可以将用户重定向到站点的主页。

答案 1 :(得分:0)

1.在表mdl_user中添加一个列(标志),当用户创建新帐户时,存储一个'false'值。

2.创建一个接受三个值表名,标志字段和用户名(用户输入)的函数。该函数返回标志字段的值(true或false)。如果用户存在于数据库中,则调用该函数。 / p>

2.1如果返回'false',则允许登录用户并将值插入标志字段'true'。 2.2如果'true'retuned则不允许登录并打印用户名和密码字段“此用户已登录”下面的消息。不要在数据库中插入任何值。

2.3现在注销用户然后插入标志字段值'flase'。

3.User允许仅在标记字段值'false'

时登录

答案 2 :(得分:0)

您可以使用数据库表字段来完成此操作。在users表中创建一个字段" is_login"(默认值为false)(其中u存储用户名n密码)。当用户登录到应用程序时,将此is_login字段设置为true,并在用户注销时将其转为false。登录时进行检查。如果验证成功(用户名和密码)正确,请检查is_login字段,如果此字段为true表示某人已登录,则不允许用户登录,否则用户可以登陆其主页。

答案 3 :(得分:0)

我会将session_id存储在用户表中,以便您确实知道谁登录。如果有尝试登录,请先检查验证,然后检查session_id-column中是否有会话

如果您有身份证,则可以查看此会话的最后一次操作的持续时间。如果您决定,没有注销但会话无效,您可以删除旧会话并插入新会话。 如果你真的想要将标志设置到" parallel-session"将信息插入其他会话用户。