2012-06-01 12 views
5

Obecnie używam Devise 2.1 + Rails 3.2.x do uwierzytelniania użytkowników. Niedługo dodam też obsługę OmniAuth-Facebook i Twitter.Rails 3.2 + Devise 2.1 + OmniAuth + uwierzytelnianie Backbone.js

Chciałem wykorzystać istniejącą infrastrukturę w Backbone.js. Czy możesz dać mi znać, czy jest to poprawny przepływ pracy z punktu widzenia uwierzytelniania?

  1. Logowanie przez opracować (lub OmniAuth)
  2. Skorzystaj opracować za Reklamowe poświadczalne wrócić token?
  3. Szkielet, aby uzyskać dostęp do tokena w jakiś sposób i dołączyć go jako część wywołania API? Nie potrzebuję API do tworzenia użytkownika, który jest obsługiwany przez Devise.

Pytania: 1. Czy w ten sposób można go wdrożyć? 2. Jakieś sugestie/próbki kodu na # 2 i # 3? 3. Jak mógłbyś obsłużyć autoryzację? Nie sądzę, że CanCan będzie działał.

P.S. Przeczytałem wiele artykułów, w tym: http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/. Wydaje się, że koncentrują się one na uwierzytelnianiu za pomocą interfejsu API, zamiast zabezpieczać zasoby API po zakończeniu uwierzytelniania.

Odpowiedz

2

I rzeczywiście dostał to nawet trochę łatwiej przez:

użytkownik loguje się poprzez opracować/OmniAuth nie tokenu uwierzytelniania musi zostać utworzony Jeśli używam tej samej czynności, która jest Devise włączona służyć resztę API, automatycznie użyje informacji o sesji do uwierzytelnienia, więc nie jest potrzebne dodatkowe przechwytywanie/ponowne wysyłanie tokena.

P.S. RABL jest generowany do tworzenia interfejsów API w Railsach.

0
  1. Przepływ pracy jest prawidłowy.
  2. Znalazłem bity i elementy w interwebs, może mogę blogu post o tym później
  3. Prawidłowe. Możesz zastąpić Backbone.sync lub jeśli używasz jQuery, możesz skonfigurować jQuery na całym świecie. Przykład here

Autoryzacja będzie traktowana tak samo po stronie serwera, chyba że klient będzie wiedział o swoich rolach. Po stronie serwera znajdziesz bieżącego użytkownika za pośrednictwem jego tokena i odpowiednio go autoryzujesz. Jeśli musisz wiedzieć, jakie role posiada użytkownik, możesz wysyłać role, gdy użytkownik będzie uwierzytelniany.

Powiązane problemy