AngularJS Authentication + RESTful API

Angular + RESTful Komunikacja po stronie klienta w / API dla Auth / (re) Routing

Zostało to omówione w kilku różnych pytaniach iw kilku różnych samouczkach, ale wszystkie poprzednie zasoby, z którymi się zetknąłem, nie trafiły w sedno.

W skorupce orzecha muszęZaloguj się przez POST zhttp://client.foo dohttp://api.foo/loginMieć „zalogowany” stan GUI / komponentu dla użytkownika, który zapewnialogout trasaByć w stanie „zaktualizować” interfejs użytkownika, gdy użytkownik wyloguje się / wyloguje.To było najbardziej frustrująceZabezpiecz moje trasy, aby sprawdzić stan uwierzytelniony (jeśli będą tego potrzebować) i odpowiednio przekieruj użytkownika na stronę logowaniaMoje problemy sąZa każdym razem, gdy przechodzę na inną stronę, muszę nawiązać połączenieapi.foo/status aby ustalić, czy użytkownik jest zalogowany. (ATM używam Express do tras) Powoduje to czkawkę, gdy Angular określa rzeczy takie jakng-show="user.is_authenticated"Po pomyślnym zalogowaniu / wylogowaniu muszę odświeżyć stronę (nie chcę tego robić), aby wypełnić takie rzeczy, jak{{user.first_name}}lub w przypadku wylogowania, opróżnij tę wartość.
// Sample response from `/status` if successful 

{
   customer: {...},
   is_authenticated: true,
   authentication_timeout: 1376959033,
   ...
}
Co próbowałemhttp://witoldsz.github.io/angular-http-auth/1http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/2https://github.com/mgonto/restangular (W moim życiu nie mogłem się dowiedzieć, jak to zrobićPOST zpost data i niequery params. Doktorzy nie znaleźli nic w tej sprawie.Dlaczego czuję, że tracę rozumWygląda na to, że każdy tutorial opiera się na jakiejś bazie danych (wiele rozwiązań Mongo, Couch, PHP + MySQL, ad infinitum), a żaden z nich nie opiera się wyłącznie na komunikacji z API RESTful w celu utrzymania zalogowanych stanów. Po zalogowaniu wysyłane są dodatkowe POST / GETwithCredentials:true, więc to nie problemNie mogę znaleźć ŻADNYCH przykładów / tutoriali / repozytoriów, które wykonują Angular + REST + Auth, sans backend language.Nie jestem zbyt dumny

Wprawdzie jestem nowy w Angular i nie zdziwiłbym się, jeśli podejdę do tego w absurdalny sposób; Byłbym podekscytowany, gdyby ktoś zaproponował alternatywę - nawet jeśli jest to zupa na orzechy.

używamExpress głównie dlatego, że naprawdę kochamJade iStylus- Nie jestem mężatkąExpress„routing i zrezygnuję, jeśli to, co chcę zrobić, jest możliwe tylko dzięki routingowi Angulara.

Z góry dziękuję za wszelką pomoc, jaką ktokolwiek może zapewnić. I proszę, nie pytaj mnie o Google, ponieważ mam około 26 stron fioletowych linków. ;-)

1To rozwiązanie opiera się na makiecie $ httpBackend firmy Angular i nie jest jasne, jak sprawić, by rozmawiał z rzeczywistym serwerem.

2To było najbliższe, ale ponieważ mam istniejące API, z którym muszę się uwierzytelnić, nie mogłem użyć „localStrategy” paszportu i wydawało sięszalony napisać usługę OAUTH ... której tylko zamierzałem użyć.

questionAnswers(4)

yourAnswerToTheQuestion