1

如果同一用户登录另一台设备,有什么方法可以限制对带有 tank auth 库的页面的访问?

4

2 回答 2

1

我认为您要查找的内容与 Tank 身份验证库无关,它位于您的配置文件中application/config/config.php

$config['sess_match_ip']= FALSE;
$config['sess_match_useragent'] = TRUE;

改成

$config['sess_match_ip']= TRUE;
$config['sess_match_useragent'] = TRUE;
于 2013-01-24T18:17:16.330 回答
1

我不完全理解你的问题,我也不太了解 Tank auth 库。假设没有默认实现,我将解释我认为您的问题的可能解决方案。

可以做到这一点的方法是将会话令牌存储在数据库中,并在每次有人登录时生成一个新的会话令牌。然后将此会话令牌存储在 Cookie(或会话变量,如果您愿意)中。每次您的应用加载时,请检查会话令牌是否仍然有效。如果同一用户在不同的设备上登录,会话令牌将更改,因此旧会话将无效。

如果您希望用户能够同时在多个设备上登录,但只想锁定对单个页面的访问(例如对网络研讨会/截屏的访问),您有几个不同的选项。最简单的解决方案是将标志放入数据库中是否打开。问题是,如果关闭它,就无法再次观看。对此的一个细微变化是使用在有人第一次打开页面时设置的会话令牌。您将令牌存储到数据库中,并将其存储在 cookie 中。所以第一个打开它的设备,是可以观看的设备。

另一种解决方案是更新 last_active 字段,并在页面打开时每分钟对服务器进行一次 ajax 调用。如果页面在 2 分钟内没有处于活动状态,您可以假设它不再处于活动状态,您可以授予其他设备访问权限。

于 2013-01-24T15:05:50.637 回答