Angular + RESTful Коммуникация на стороне клиента с API для маршрутизации Auth/(re)
Это было рассмотрено в нескольких разных вопросах, и в нескольких разных учебниках, но все предыдущие ресурсы, с которыми я столкнулся, не совсем ударяют ноготь по голове.
В ореховой оболочке мне нужно
- Вход через POST от
http://client.foo
доhttp://api.foo/login
- Имейте "вход в систему" GUI/компонентное состояние для пользователя, который предоставляет маршрут
logout
- Уметь "обновлять" пользовательский интерфейс, когда пользователь выходит из системы/выходит из системы. Это было самым разочаровывающим
- Защитите свои маршруты, чтобы проверить состояние аутентификации (в случае необходимости) и перенаправить пользователя на страницу входа соответственно.
Мои проблемы
- Каждый раз, когда я перехожу на другую страницу, мне нужно сделать вызов
api.foo/status
, чтобы определить, зарегистрирован ли пользователь. (ATM я использую Express для маршрутов). Это вызывает икоту как Angular определяет такие вещи, какng-show="user.is_authenticated"
- Когда я успешно завершаю вход/выход из системы, мне нужно обновить страницу (я не хочу этого делать), чтобы заполнить такие вещи, как
{{user.first_name}}
, или, в случае выхода из системы, удалить это значение,
// Sample response from `/status` if successful
{
customer: {...},
is_authenticated: true,
authentication_timeout: 1376959033,
...
}
Что я пробовал
- http://witoldsz.github.io/angular-http-auth/ 1
- http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/ 2
- https://github.com/mgonto/restangular (В течение жизни я не мог понять, как
POST
сpost data
, а неquery params
Документы ничего не изменили.
Почему я чувствую, что схожу с ума
- Кажется, что каждый учебник опирается на некоторую базу данных (много монго, couch, PHP + MySQL, ad infinitum), и никто не полагается исключительно на связь с RESTful API для сохранения состояния входа в систему. После входа в систему дополнительные POST/GET отправляются с
withCredentials:true
, так что не проблема - Я не могу найти ЛЮБЫЕ примеры/учебники/репозиции, которые делают Angular + REST + Auth, без использования бэкэнд-языка.
Я не слишком горжусь
По общему признанию, я новичок в Angular, и не удивлюсь, если я приблизился к этому нелепо; Я был бы в восторге, если бы кто-то предложил альтернативу - даже если это суп-орехи.
Я использую Express
в основном потому, что мне очень нравятся Jade
и Stylus
- я не женат на маршрутизации Express
"и откажусь от него, если то, что я хочу сделать, возможно только с Angular маршрутизация.
Заранее благодарим за любую помощь, которую любой может предоставить. И, пожалуйста, не просите меня в Google, потому что у меня около 26 страниц фиолетовых ссылок.; -)
1 Это решение опирается на Angular $httpBackend mock, и неясно, как заставить его говорить с реальным сервером.
2 Это было самым близким, но поскольку у меня есть существующий API, с которым мне нужно пройти аутентификацию, я не мог использовать паспорт 'localStrategy', и он казался безумным напишите услугу OAUTH..., которую я только хотел использовать.