Codeigniter 如何使用tank auth library限制同一用户登录其他设备?
如果同一用户登录到其他设备,是否有任何方法限制对tank auth library页面的访问?我不完全理解您的问题,我也不太了解tank auth library。 假设没有默认的实现,我将解释我认为您的问题的可能解决方案 实现这一点的方法是在数据库中存储一个会话令牌,并在每次有人登录时生成一个新的会话令牌。 然后将此会话令牌存储在Cookie中(如果愿意,也可以存储会话变量)。 每次加载应用程序时,检查会话令牌是否仍然有效。 如果同一用户登录到不同的设备,会话令牌将更改,因此旧会话将无效 如果您希望用户能够同时登录多个设备,但只想锁定对单个页面的访问(例如访问网络研讨会/屏幕广播),您有几个不同的选项。 最简单的解决方案是在数据库中添加一个标记,标记是否已打开。问题是,如果一个关闭了它,它就不能再被监视。 这方面的一个微小变化是使用会话令牌,该令牌是在某人第一次打开页面时设置的。您将令牌存储到数据库中,并将其存储在cookie中。因此,打开它的第一个设备是可以观看的设备 另一种解决方案是更新last_活动字段,并在页面打开时每分钟对服务器进行一次ajax调用。Codeigniter 如何使用tank auth library限制同一用户登录其他设备?,codeigniter,codeigniter-2,tankauth,Codeigniter,Codeigniter 2,Tankauth,如果同一用户登录到其他设备,是否有任何方法限制对tank auth library页面的访问?我不完全理解您的问题,我也不太了解tank auth library。 假设没有默认的实现,我将解释我认为您的问题的可能解决方案 实现这一点的方法是在数据库中存储一个会话令牌,并在每次有人登录时生成一个新的会话令牌。 然后将此会话令牌存储在Cookie中(如果愿意,也可以存储会话变量)。 每次加载应用程序时,检查会话令牌是否仍然有效。 如果同一用户登录到不同的设备,会话令牌将更改,因此旧会话将无效 如果
如果页面在2分钟内未处于活动状态,您可以假定它不再处于活动状态,您可以让其他设备访问。我认为您要查找的内容与坦克身份验证库无关,它位于
应用程序/config/config.php
$config['sess_match_ip']= FALSE;
$config['sess_match_useragent'] = TRUE;
改为
$config['sess_match_ip']= TRUE;
$config['sess_match_useragent'] = TRUE;