Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 如何使用tank auth library限制同一用户登录其他设备?_Codeigniter_Codeigniter 2_Tankauth - Fatal编程技术网

Codeigniter 如何使用tank auth library限制同一用户登录其他设备?

Codeigniter 如何使用tank auth library限制同一用户登录其他设备?,codeigniter,codeigniter-2,tankauth,Codeigniter,Codeigniter 2,Tankauth,如果同一用户登录到其他设备,是否有任何方法限制对tank auth library页面的访问?我不完全理解您的问题,我也不太了解tank auth library。 假设没有默认的实现,我将解释我认为您的问题的可能解决方案 实现这一点的方法是在数据库中存储一个会话令牌,并在每次有人登录时生成一个新的会话令牌。 然后将此会话令牌存储在Cookie中(如果愿意,也可以存储会话变量)。 每次加载应用程序时,检查会话令牌是否仍然有效。 如果同一用户登录到不同的设备,会话令牌将更改,因此旧会话将无效 如果

如果同一用户登录到其他设备,是否有任何方法限制对tank auth library页面的访问?

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

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

如果您希望用户能够同时登录多个设备,但只想锁定对单个页面的访问(例如访问网络研讨会/屏幕广播),您有几个不同的选项。 最简单的解决方案是在数据库中添加一个标记,标记是否已打开。问题是,如果一个关闭了它,它就不能再被监视。 这方面的一个微小变化是使用会话令牌,该令牌是在某人第一次打开页面时设置的。您将令牌存储到数据库中,并将其存储在cookie中。因此,打开它的第一个设备是可以观看的设备

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

我认为您要查找的内容与坦克身份验证库无关,它位于
应用程序/config/config.php

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

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