0

我想在 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。


笔记:

  • 只有少数管理员用户
  • 我现在不需要细粒度的角色

有什么想法(其他解决方案)吗?

4

1 回答 1

1

我的非 Flask 应用程序中有这样的混合登录,我的处理程序如下所示:

handlers:
- url: /admin
  script: main.app
  login: admin

- url: /.*
  script: main.app

无需为管理员提供单独的应用程序。我不知道 Flask 是如何工作的,但我希望这对你也有用。

于 2017-01-21T20:56:44.047 回答