Ответ 1
Я действительно сам работаю над решением этой проблемы. Проект называется Sapling - это стартовый проект AngularJS, который охватывает управление пользователями.
Это тот подход, который я принял:
-
Пользователь приходит на сайт - загружает html и javascript
-
После загрузки Angular введите
GET
запрос'/api/user/me'
. Если пользователь выполнил вход в систему с возвратом представления пользователя, например.{ "name": "Bob", "admin": false, // ect. }
Если пользователь не зарегистрирован в ответ на ошибку
401
. -
Если объект пользователя возвращен - проверьте, является ли пользователь также и администратором. Если получено сообщение
401
, перенаправляйте пользователя на страницы входа (вы можете создать страницу входа в ваше приложение Angular, или если вы чувствуете, что пользователь не запутается, вы можете отправить их прямо в Google login).
Итак, как вы это делаете с помощью службы пользователей App Engine?
В вашем обработчике запросов для URL '/api/user/me
Вызов get_current_user()
и is_current_user_admin()
-
Пользователь вошел в систему - добавьте admin
boolean
и верните представление пользователя как json. -
Пользователь не авторизовался - верните a
401
Неавторизованный, т.е.response.set_status(401)
Как вы направляете пользователя к URL-адресам входа и выхода из системы?
Вы можете создавать обработчики запросов по следующим URL-адресам:
'апи/пользователь/Логин
webapp2.redirect(users.create_login_url())
'апи/пользователь/выход из системы'
webapp2.redirect(users.create_logout_url())
И направьте пользователей к ним из Angular.
Я думаю, что я осветил основы. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.