在GAE应用程序中使用OAuth和GAE的用户API

时间:2017-01-21 19:35:18

标签: google-app-engine flask google-app-engine-python flask-oauthlib

我想在GAE上托管基于Flask的Web应用程序。

常规用户使用flask-oauthlib对Google进行身份验证。

但是,我想使用GAE的Users 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:在同一GAE应用程序中创建一个单独的烧瓶app对象:

# 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。

注意:

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

任何想法(其他解决方案)?

1 个答案:

答案 0 :(得分:1)

我的非Flask应用程序中有这样的混合登录,我的处理程序看起来像这样:

hashHistory.push('/register');

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