2012-08-01 187 views
3

我有一个登录脚本作品,但,我不知道我应该如何处理额外的登录尝试当用户已经登录,登录页面重定向到主页,如果发现用户已经登录。如何处理用户登录后的其他登录尝试?

然而,如果用户有多个浏览器窗口,在登录页面打开,通过一次登录,然后尝试使用其他浏览器标签用相同的登录名或其他登录再次登陆,我应该如何处理这两种类型的请求?

更为复杂的是,我有一个验证页面也将记录用户后,用户已经使用了令牌验证。如果用户已经登录,我应该如何处理这个问题?

例如,用户A和用户B都注册并且都通过电子邮件接收令牌。他们都在同一台PC上,同一台浏览器上,同一个会话上。用户A验证令牌,然后成功登录。用户B,然后验证令牌然后登录...?等待用户A已经登录!我应该如何处理用户A?

这里最好的做法是什么?

+1

使用** session **或** cookie ** ..请发布您的登录代码,以便我可以帮助您更好地 – 2012-08-01 09:02:32

+0

@BhuvanRikka嗨,感谢您的评论,但是我不需要在我的代码中修复,我只需要知道在同一个会话上进行额外的登录尝试需要达到什么样的行为。代码只会使问题比问题更复杂。 – chaser 2012-08-01 09:29:43

+0

我发布的代码是纯javascript。所以它很复杂。使用php,你可以更容易。不同的框架有不同的创建会话的方式 – 2012-08-01 09:36:52

回答

1

,与 一个登录,然后尝试使用其它再次登录浏览器选项卡,我应该如何处理这个请求 ?

当然,登录会话将被设置,并且不需要再次验证是否它是有效登录?

通常有3种方法来处理额外的登录:

  1. 忽略它,让人们在不同地点登录的同时

  2. 踢第一届出来的时候,第二届日志这通常不是最好的解决方案,但它解决了人们关闭浏览器的问题(即没有正确注销),然后尝试在新会话中重新登录并被告知不能。

  3. 给予用户一个错误,说他们在别处登录。如果这样做,请确保活动登录有一个时间限制,这样如果有人确实忘记在某处注销,或者他们的浏览器意外关闭,那么他们仍然能够重新登录 - 他们只需等待一段时间时间。

就我个人而言,除非有异常情况,否则我会选择第二种选择。

+0

嗨,我已经更新了这个问题,以扩大此。如果登录不一样,那又是什么登录?我还会杀了第一场? 成功登录后,我应该确保$ _SESSION为空吗? – chaser 2012-08-01 09:22:27

+0

在这种情况下,如果某人已经登录,然后尝试重新登录或尝试验证令牌,我只会发出一个错误。如果他们想要登录/验证另一个帐户,请输入一个错误,告诉他们注销当前帐户。 – Nick 2012-08-01 09:29:27

+0

呼叫良好。让用户对他们的行为负责。谢谢,我会将此标记为已回答。 – chaser 2012-08-01 09:36:21

1

就个人而言,当某人进行双重登录时,无论如何,先登录的人都会被注销。

为什么?

Bascyly因为如果有人忘记注销并离开他的电脑。返回到另一台电脑,并尝试登录,无法登录,他真的非常非常反感。

当用户登录在他登录,登录在该计算机上或在另一台计算机上的同一个帐户的所有其他用户获取注销。允许用户始终登录到他或她的帐户。

你也可以忽略这一点。如果这不会在您的应用程序中造成问题,您可以让某人同时在多个地方使用一个帐户登录。但我们无法为你确定。

至于两个不同的用户尝试登录在同一个浏览器,我永远不会让这种事情发生,它也不可能在我的应用程序,因为我使用cookie这一点。

+0

看来人们误解了我的问题。也许我应该更好地重述它来帮助其他人提出类似的问题。这不是单独的浏览器/会话/位置。同一会话/位置/浏览器。只有两个用户使用同一个会话竞争登录。或者实际上有一个用户拥有两个账户。 – chaser 2012-08-01 10:00:44

1

使用Cookie:

在登录页面:

<script type="text/javascript"> 
if(document.cookie.split(";")[0].split("=")[0] != "")//the login page checks for cookies every time it loads.if the password and id are saved,it'll redirects to homepage without showing login page 
     { 
     window.location.href = "welcome.html"; 
     } 

if(condition)//condition when username and password are valid 
      { 
       var uname=document.getElementById("zname").value; 
       var pswd=document.getElementById("zpswd").value; 
       if(document.getElementById("chkbx").checked) //Remember me checkbox (stores username and password until "logout" is clicked in homepage) 
       { 
        document.cookie=uname+"="+pswd; 
        alert("You will be automtically logged in when you visit this page again" +uname); 
       } 



       window.location.href="welcome.html"; 
      } 
</script> 

在主页:

<script type="text/javascript"> 
function del_cookie(name) 
      { 
     document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
    } 
    function signOut() 
      { 
     del_cookie(document.cookie.split(";")[0].split("=")[0]); 
     window.location.href ="login_page.html" 
    } 
</script> 

所以,每次加载时间登录页面检查饼干。如果密码和ID被保存,它会重定向到网页上没有显示,如果用户有多个浏览器标签在登录页面打开登录页面

+0

对此+1,因为虽然它不是我要找的,但它是有用的,我将在cookie参与混合时使用它(记住我) – chaser 2012-08-01 09:40:30

+0

@chrolli sure buddy;)。它肯定会有帮助,因为使用php无法实现所有功能。你必须坚持基本的时间 – 2012-08-01 09:45:10

相关问题