php - 用户登录后如何处理额外的登录尝试?

标签 php authentication login-script

我有一个有效的登录脚本,但我想知道当用户已经登录时我应该如何处理额外的登录尝试。如果发现用户已经登录,登录页面将重定向到主页。

但是,如果用户在登录页面打开了多个浏览器选项卡,使用一个登录,然后尝试使用其他浏览器选项卡再次登录,无论是使用相同的登录名还是其他登录名,我应该如何处理这两种类型的请求?

为了使事情复杂化,我有一个验证页面,该页面还会在用户使用 token 验证用户后登录。如果用户已经登录,我应该如何处理?

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

这里的最佳做法是什么?

最佳答案

if user has multiple browser tabs opened at the login page, login with one, then attempt to login again using the other browser tabs, how should I handle this request?

那么肯定会设置登录 session ,如果它再次是有效登录,则无需进行身份验证?

处理额外登录一般有3种方法:

  1. 忽略它,允许人们同时在不同的位置登录

  2. 在第二个 session 登录时踢出第一个 session 。这通常不是最好的解决方案,但它解决了人们关闭浏览器(即未正确注销)然后再次尝试登录的问题在新的 session 中并被告知他们不能。

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

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

关于php - 用户登录后如何处理额外的登录尝试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11755926/

相关文章:

html - 切换登录名和用户头衔

php - javascript 和 php - 登录脚本

python - 使用 Python 添加/删除 Ubuntu 登录脚本项

php - 教义 : How to unset (SET NULL) OneToMany relationship

php - 如何在 MySQL 数据库中存储包含引号的字符串?

php - 使用 REST 代理 (PHP) 检查 Azure 队列是否存在

php - Laravel 仓库

trello - 使用 OAuth 以编程方式访问 Trello

authentication - Safari , jetty : Websockets not working as authentication header is not sent

python - 类型错误 : native Qt signal is not callable