Php Codeigniter:存储用户';A.秘书长在会议中的作用

Php Codeigniter:存储用户';A.秘书长在会议中的作用,php,session,codeigniter,Php,Session,Codeigniter,在Codeigniter会话中存储用户角色是否安全 角色将决定用户将拥有什么功能;这就是管理员、普通用户或高级用户 我还将会话存储在数据库中以增加安全性,但我想知道是否应该使用备用路由,例如查询用户id并检查其角色,但我认为,在身份验证方面只需再进一步 请告知。如果角色大部分是静态的,则将角色存储在会话中以避免一直查询该角色应该可以 只考虑当用户的角色被编辑而会话有效(登录或过期)时,在边缘情况下该做什么。会话是否应该对他无效,因此他必须重新登录?或者您的应用程序是否知道该角色现在已过时,应该从

在Codeigniter会话中存储用户角色是否安全

角色将决定用户将拥有什么功能;这就是管理员、普通用户或高级用户

我还将会话存储在数据库中以增加安全性,但我想知道是否应该使用备用路由,例如查询用户id并检查其角色,但我认为,在身份验证方面只需再进一步


请告知。

如果角色大部分是静态的,则将角色存储在会话中以避免一直查询该角色应该可以


只考虑当用户的角色被编辑而会话有效(登录或过期)时,在边缘情况下该做什么。会话是否应该对他无效,因此他必须重新登录?或者您的应用程序是否知道该角色现在已过时,应该从数据库中刷新?

是的,这是安全的。如果数据存储在数据库中,用户几乎无法篡改数据。

我正在使用Codeigniter中的Tank Auth。我不确定我的应用程序将如何使会话无效,但它确实使用了数据库,因此正如Matthew所说,我应该是安全的,这是我真正希望的。@Anraiki我的意思是:假设用户X已登录,您更改了他的角色。会话处理程序如何知道从数据库中刷新以获得更改的角色?也许您需要一种方法使该用户的会话无效,以便他可以重新登录,或者需要一种方法知道如何从数据库中获取新角色。我认为您过于复杂了。如果他们想将角色从“用户”更改为“管理员”,那么可以有一个函数,比如$this->session->set_userdata('role','admin')。您还需要将其保存到相应的用户行,以便他们在不同时间登录时正确反映。@Matthew如果您作为管理员登录到该站点并更改用户的角色,您将如何访问该用户的会话<代码>$this->session将访问您的会话。这实际上是一种边缘情况,因为这种情况很少发生,您可以设置一个用户属性来通知用户重新登录。我只是想把它作为思考的素材提出来。每当你积极地缓存东西时,你需要有一种远程使缓存失效的方法。