Использование OAuth и API пользователя GAE в приложении GAE

Я хотел бы разместить мое веб-приложение на основе Flask на GAE.

Обычные пользователи проходят проверку подлинности против Google с помощью flask-oauthlib.

Тем не менее, я хотел бы аутентифицировать пользователей-администраторов, используя 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 ["admin1@...", "admin2@...", "admin3@..."]

То есть не полагайтесь на API пользователей GAE.


Заметки:

  • есть только несколько администраторов
  • Мне не нужны мелкозернистые роли на данный момент

Есть мысли (другие решения)?

1 ответ

У меня есть такие смешанные логины в моем приложении, не являющемся Flask, и мои обработчики выглядят так:

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

- url: /.*
  script: main.app

Не нужно иметь отдельное приложение для администратора. Я не знаю, как работает Flask, но я ожидаю, что это сработает и для вас.

Другие вопросы по тегам