2013-05-15 15 views
11

Tworzę aplikację opartą na Railsach i AngularJS. Chciałbym wdrożyć system uwierzytelniania za pomocą gem Devise. Zastanawiam się, jak to zrobić. Przeczytałem kilka artykułów na temat atrybutu: token_authenticatable: będę musiał umieścić mój token na końcu wszystkich żądań, które wyślę.Uwierzytelnianie za pomocą AngularJs i Devise Rails, czy potrzebuję systemu tokenów?

Mam również przeczytać ten projekt demo https://github.com/sectore/CafeTownsend-Angular-Rails Zaimplementowano usługę SessionService, która umożliwia tworzenie i usuwanie sesji serwera. (Przypuszczam, mogę użyć Devise do tej pracy). W kontrolerze szyn otrzymują sesję [: user_id], aby dowiedzieć się, czy użytkownik jest uwierzytelniony, czy nie ...

Moje pytanie: Czy potrzebuję systemu tokenów lub systemu plików cookie do uwierzytelnienia moich wniosków?

Dzięki

+0

Czy to pytanie dotyczy AngularJS lub Devise? Zrobiłem zarówno autograf oparty na tokenie i cookie z AngularJS i wygląda na to, że Devise obsługuje oba (za pośrednictwem Token Authenticatable i Rememberable). – jkoreska

+0

Moje pytanie dotyczy tego, jak zaprojektować dobry system uwierzytelniania, gdy używam angularjs z szynami jako API. Jeśli oba rozwiązania są obsługiwane, nie wiem. Być może ten oparty na plikach cookie jest łatwiejszy do wdrożenia. – vpoulain

+2

Pliki cookie są łatwiejsze, ponieważ przeglądarka wysyła je automatycznie przy każdym żądaniu. Jeśli planujesz obsługę klientów spoza przeglądarki, powinieneś użyć tokenu przekazanego w nagłówkach HTTP - sprawdź $ http.defaults.headers.common, aby wstrzyknąć swój nagłówek tokena dla wszystkich żądań $ http. – jkoreska

Odpowiedz

6

Jeśli serwer będzie na samej domenie co kliencie, to znaczy: będzie oczekiwał tylko wymagać od kątowej klienta, a klient jest obsługiwany na tej samej zawartości, co serwer, a następnie należy używać cookies over SSL (dla uproszczenia), np:

swojej strony:

www.myangularsite.com/somepage 

Twój serwer

www.myangularsite.com/someserverfunction 

Oba mają tę samą domenę.

Jednakże, jeśli plan mający swoją stronę serwera na inny URL, może jako API, a następnie przejść z żetonami, np

swojej strony:

www.myangularsite.com/somepage 

Twój serwer

api.myangularsite.com/someserverfunction 
or 
myrubyapi.com/someserverfunction 

Domena adresu URL jest inna.

Powiązane problemy