我想在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。
注意:
任何想法(其他解决方案)?
答案 0 :(得分:1)
我的非Flask应用程序中有这样的混合登录,我的处理程序看起来像这样:
hashHistory.push('/register');
无需为管理员设置单独的应用。我不知道Flask是如何工作的,但我希望这对你也有用。