我想在 GAE 上托管我的基于 Flask 的 Web 应用程序。
普通用户使用flask-oauthlib对 Google 进行身份验证。
但是,我想使用 GAE 的用户 API对管理员用户进行身份验证,因为它提供了.users.is_current_user_admin()
但是,我似乎无法保护该admin
区域免受app.yaml
,因为以下配置无效:
# app.yaml
[...]
handlers:
# For admin users
# THIS IS INVALID!
- url: /admin
login: admin
# For regular users
- url: /.*
script: main.app
选项 1:app
在同一个 GAE 应用程序中创建一个单独的烧瓶对象:
# app.yaml
[...]
# For admin users
- url: /admin
script: admin.app
login: admin
这是一个好习惯吗?如果不是,为什么?
选项2:只需实现一个功能,例如:
def is_admin():
return current_user.email in ["admin1@...", "admin2@...", "admin3@..."]
也就是说,不要依赖 GAE 的用户 API。
笔记:
- 只有少数管理员用户
- 我现在不需要细粒度的角色
有什么想法(其他解决方案)吗?