0

我想在GAE上託管基於Flask的Web應用程序。在GAE應用程序中同時使用OAuth和GAE的用戶API

常規用戶通過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:創建在同一個單獨的燒瓶中app對象GAE應用:

# app.yaml 
[...] 
# For admin users 
- url: /admin 
    script: admin.app 
    login: admin 

這是一個很好的做法嗎?如果不是,爲什麼?


選項2:簡單實現的功能,例如:

def is_admin(): 
    return current_user.email in ["[email protected]", "[email protected]", "[email protected]"] 

也就是說,不依賴GAE的API的用戶。


注:

  • 只有少數管理員用戶
  • 我不此刻

任何想法(其他的解決方案)需要細粒度的角色?

回答

1

我有我的非瓶應用這樣的混合登錄,我的處理程序是這樣的:

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

- url: /.* 
    script: main.app 

沒有必要對管理一個單獨的應用程序。我不知道Flask是如何工作的,但我希望這也適用於你。

+0

謝謝!我想你使用webapp2。它是否正確? –

+0

@ user6770522,是的,我使用webapp2。 –