我目前正在Django中编写应用程序,我正在考虑在用户会话期间存储特定的权限信息。权限由以下值组成;
值越高,用户拥有的权限越高。如果用户对“Projects”模块只有“Edit”权限,我想将其存储在某个地方,这样我就不必让Django不断地查询数据库了。使用以下内容是否合适;
request.session['project_permission'] = '2'
或者用户是否能够编辑此值并潜入更高的数字,如3或4?
感谢您的阅读。
答案 0 :(得分:1)
假设您正在使用Django的默认会话模型后端,则用户将无法编辑任何与会话相关的数据。
存储在客户端的唯一信息是sessionid(在cookie中),它是Django Sessions表的主键。
Django会话表还有一个名为" session_data"的列。它存储散列的会话数据(用户无权访问,除非他们可以访问您的数据库)
我不建议在会话中存储权限,有更好的方法来实现它。 此外,会话(默认django会话模型后端)数据存储在数据库中,因此间接查询正在进行中