使用Google App Engine和Python的基于角色的安全性

5 投票
1 回答
2606 浏览
提问于 2025-04-15 14:26

我想问一下,在使用Google App Engine和Python时,处理基于角色的安全性通常是怎么做的?

在app.yaml文件中,有一个“login”部分,但可选的值只有“admin”和“required”。

你们通常是怎么处理基于角色的安全性的呢?

  • 创建一个模型,里面有两个表:角色表(Roles)和用户角色表(UserRoles)
  • 为角色表导入一些值
  • 手动把用户添加到用户角色表中
  • 检查用户是否在正确的角色组里

如果还有其他想法或者其他处理基于角色的安全性的方法,请告诉我们!

1 个回答

4

我会通过给用户模型添加一个角色列表来实现这个功能。这个列表里包含了某个用户所拥有的所有角色。这样,如果你想知道某个用户是否属于某个角色(我想这是最常见的操作),你只需要快速检查一下就可以了。

你可以直接把角色名称放到列表里,作为字符串,也可以再加一层间接关系,创建一个单独的实体来说明角色的详细信息,这样以后修改这些信息会更方便。不过,这样做会增加运行时的开销,因为你需要额外的请求来获取角色的详细信息。

这种方法的缺点是,如果你想把所有用户从某个角色中移除,或者进行其他全局操作时,就会比较麻烦。我想你可以把角色标记为“已删除”,但这样的话,你的用户模型里还是会有很多杂乱的数据,直到你手动清理掉它们。所以我很想听听其他人有什么建议。

撰写回答