Пользовательская аутентификация (модель пользователя) для облачных конечных точек - Python

Я разрабатываю приложение для Android с базой данных GAE, для сеансов и т.д. Я хочу использовать конечную точку Google Cloud и разработать API с пользовательской моделью аутентификации. Я не хочу использовать google oauth. Я хочу реализовать простую аутентификационную модель электронной почты/пароля пользователя с маркером на основе сеанса. Я вообще не имею никакого опыта в GAE. Я работал в python и его фреймворках (django, flask и т.д.).

Я искал пример такого проекта на прошлой неделе (без везения).

Может кто-нибудь, пожалуйста, предоставит мне пример кода/ресурса о том, как реализовать такую ​​конечную точку с управлением сеансом и защитой csrf вместе с ssl?

Ps: Если вы считаете, что конечные точки облака не являются хорошим подходом для моего приложения (серверный сервер), пожалуйста, направьте меня к источнику, который может помочь мне создать мой собственный RESTful api с кодировкой JSON + защита crsf и управление сеансом.

Я уже видел следующее, но ни одно из них не имеет детального решения:

Ответ 1

Ты катаешься. Это не простой процесс, но мне удалось сделать то, что вы ищете, хотя и слегка хакерским способом.

Во-первых, существует шаблонный проект для GAE (в Python), который реализует пользовательскую систему входа в систему электронной почты /pwd с помощью дополнительных функций webapp2: http://appengine.beecoss.com/

Это следует принципам настройки пользовательской аутентификации, подробно описанной в этом сообщении в блоге: http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/

Этот проект установит все, чтобы ваш пользователь начал сеанс при входе в систему. Теперь, чтобы получить доступ к информации о пользователе на этом сеансе в ваших конечных точках, вы будете следовать инструкциям этой fooobar.com/info/99332/....

Ключ, следующий за предыдущими шагами, заключается в том, чтобы сопоставить ключ сеанса в конечных точках с ключом сеанса в файле конфигурации шаблона. Затем вы сможете получить, какой пользователь выполнил запрос, и выполнить его с помощью вызова конечной точки, если они подтверждены:

    self.get_user_from_cookie()

    if not self.user:
        raise endpoints.UnauthorizedException('Invalid token.')

Невероятно смешно, что так оно работает для пользовательской аутентификации, поэтому, если вы привыкли к Django и хотели бы реализовать свое приложение таким образом, сделайте это. "Мне было слишком поздно возвращаться", и я презираю Google только за документирование схем аутентификации, которые работают только для владельцев учетных записей Google.

OP, просто используйте Django для GAE и избавьте себя от разочарования. Я уверен, что есть много быстрой интеграции с мобильными приложениями, которые сообщество Django может предоставить.

Никто не хочет заставить своих пользователей приложений иметь учетные записи Google для входа в Google. Остановите его.