2012-05-18 4 views
8

Przeprosiny za pytanie dla początkujących.RESTful, uwierzytelnianie użytkownika i Django-tastypie

Jestem trochę zmieszany z powodu ogólnego podejścia do korzystania z usług RESTful w połączeniu z różnymi użytkownikami. W szczególności skupiam się przede wszystkim na tworzeniu interfejsu API, którego będę używać tylko za pomocą różnych aplikacji, które piszę, a mianowicie aplikacji internetowej i potencjalnie niektórych aplikacji mobilnych, które będą miały dostęp do tych samych danych.

(1) Czy API odpoczynku produkowane przez coś odpowiedniego dla Django-tastypie (lub nawet najlepszej praktyki) do użytku niepublicznego - tj., Gdy chcę tylko umożliwić dostęp do tych danych za pośrednictwem moich aplikacji?

(2) W tworzeniu login dostępu do relaksującego API, mam tworzenia logowania dla wszystkich użytkowników mojej aplikacji internetowej - albo ja tworząc logowania dla sam i mojej aplikacji sieci web? Czy konta użytkowników mojej aplikacji webowej powinny być uważane za odrębne od kont w celu uzyskania dostępu do Restful API?

Zasadniczo chcę utworzyć aplikację przy użyciu Django i django-tastypie, która pozwoli użytkownikom zalogować się, utworzyć obiekty widoku, zasubskrybować użytkowników i wyświetlić ich obiekty. Chcę korzystać z interfejsu API Tastypie do własnych celów javascript, aby ułatwić tworzenie serializacji i aktualizowanie odpowiednich danych w moich widokach. Gdzie te konta użytkowników mieszczą się w tym obrazku? Dzięki!

+0

Twój punkt numer 2 nie jest dla mnie zbyt jasny.Nie możesz mieć swoich aplikacji jako użytkowników api (co znowu jest projektem django, zgaduję)? – zubinmehta

Odpowiedz

4

Jeśli dobrze rozumiem, masz do czynienia z dwoma oddzielnymi obaw auth tutaj: (a) dostęp do API - Your web/aplikacji mobilnych tylko (b) dostęp do danych użytkownika za pośrednictwem interfejsu API - Dla użytkowników za pośrednictwem web/aplikacja mobilna

Dla (A), można po prostu uwierzytelnić na tajnym kluczu. Tak więc Twój interfejs internetowy lub mobilny wysyłałby ten klucz z każdym żądaniem API, co gwarantowałoby, że otrzymujesz żądania tylko od autoryzowanych klientów.

Jeśli chcesz używać różnych kluczy dla różnych aplikacji, możesz utworzyć prosty model django, aby śledzić je i dodawać nowe klucze lub odwoływać je w razie potrzeby.

Jeśli używasz SSL do wszystkiego, powinieneś być bezpieczny przed wąchaniem ataków, aby odkryć swój klucz. Myślę, że najsłabszym punktem jest to, że ktoś może zrewolucjonizować twoją aplikację mobilną, aby znaleźć klucz, ponieważ będziesz musiał przechowywać klucz w aplikacji.

Dla (B) użyj systemu autoryzacji django. Aplikacja tastypie Basic lub ApiKey Authenticators powinna umożliwiać logowanie użytkowników i za pośrednictwem interfejsu API oraz na podstawie ich uprawnień, dostępu lub tworzenia danych. Myślę, że o to pytałeś w drugim pytaniu?

Nie sądzę, że można używać tych samych modeli uwierzytelniania dla obu (A) i (B), jeśli używasz sesji, ponieważ nie możesz mieć dwóch aktywnych sesji w tym samym czasie.

+0

Dzięki za odpowiedź. Od tego czasu trochę się przeniosłam, ale nadal byłam zakłopotana podstawowymi zasadami. – bento

+0

@ Jaka jest różnica między uwierzytelnianiem ApiKey a tajnym uwierzytelnianiem klucza opisanym w (A)? –

0

Jestem nowy z Django i DRF i mogłby help.I właśnie stworzyliśmy aplikację notatkę i jestem rozważa, czy jestem ci potrzebna użytkownika/Autorzy/Klienci drugą aplikację w moim projekcie. Chcę tylko, aby użytkownik mógł się logować, tworzyć własne notatki, a notatki powinny mieć jednego (lub więcej) autorów, aby można było filtrować dane użytkownika. Pomocy?

PS: Jestem również początkującym, więc możemy pozostać w kontakcie, jeśli chcesz.