2012-05-18 15 views
8

Scuse per la domanda per principianti.RESTful, autenticazione utente e Django-tastypie

Sono un po 'confuso sull'approccio generale all'utilizzo dei servizi RESTful in combinazione con utenti distinti. In particolare, sono principalmente interessato allo sviluppo di un'API che userò solo attraverso le varie applicazioni che scrivo, vale a dire un'applicazione web e potenzialmente alcune app mobili che accederanno a tutti gli stessi dati.

(1) È un'API di riposo prodotta da qualcosa come django-tastypie appropriata (o anche best practice) per uso non pubblico - cioè, quando desidero solo concedere l'accesso a questi dati tramite le mie applicazioni?

(2) Nella creazione dell'accesso di accesso all'API Restful, sto creando un accesso per tutti gli utenti della mia web-app - o sto creando un login per io e la mia applicazione web? Gli account utente per la mia webapp devono essere considerati distinti dagli account per accedere all'API Restful?

Fondamentalmente, sto cercando di creare un'applicazione che utilizzi Django e django-tastypie che consentano agli utenti di accedere, creare oggetti di visualizzazione &, iscriversi agli utenti e visualizzare i loro oggetti. Voglio utilizzare l'API Tastypie per i miei scopi javascript, per facilitare la creazione di serializzazione e aggiornamento dei dati rilevanti nelle mie visualizzazioni. Dove si inseriscono questi account utente all'interno di questa immagine? Grazie!

+0

Il tuo punto numero 2 non è molto chiaro per me.Non puoi avere le tue applicazioni come i tuoi utenti dell'api (che di nuovo è un progetto django in sé, sto indovinando)? – zubinmehta

risposta

4

Se ho capito bene, si tratta di due distinti dubbi di autenticazione qui: (A) Accesso all'API - Solo la tua app web/mobile (B) Accesso ai dati utente tramite l'API - Per gli utenti tramite il tuo web/mobile

Per (A), è possibile semplicemente autenticarsi su una chiave segreta. Pertanto, il tuo sito web o il tuo front-end mobile invierà tale chiave a ogni richiesta API, garantendo così la ricezione di richieste solo dai client autorizzati.

Se si desidera utilizzare chiavi diverse per diverse app, è possibile creare un semplice modello django per tenerne traccia e aggiungere nuove chiavi o revocarle secondo necessità.

Se si utilizza SSL per tutto, si dovrebbe essere al sicuro dallo sniffare gli attacchi per scoprire la chiave. Penso che il punto più debole qui sarebbe che qualcuno potrebbe decodificare la tua app mobile per trovare la chiave, dal momento che dovresti memorizzare la chiave nell'app.

Per (B), utilizzare il sistema auth django. Il tastypie Basic o ApiKey Authenticators dovrebbe consentire di registrare gli utenti in e tramite l'API e in base alle loro autorizzazioni, accesso o creazione di dati. Penso che sia quello che stavi chiedendo nella seconda domanda?

non credo che è possibile utilizzare gli stessi modelli auth per entrambi (A) e (B) se si utilizza le sessioni, perché non si può avere due sessioni attive allo stesso tempo.

+0

Grazie per la risposta. Da allora mi sono spostato un po ', ma ero ancora confuso dai principi di base. – bento

+0

@sid qual è la differenza tra l'autenticazione ApiKey e l'autenticazione della chiave segreta descritta in (A)? –

0

Sono nuovo con Django e DRF e ho potuto utilizzare alcuni help.I appena creato una nota app e sto considerando se sto andando avere bisogno di un utente/autori/clienti secondo app nel mio progetto. Voglio solo che l'utente sia in grado di accedere, creare le proprie note e le note dovrebbero avere uno (o più) autori in modo da poter filtrare i dati utente. Qualsiasi aiuto?

PS: Anche io sono un principiante, quindi possiamo tenerci in contatto se lo desideri.

Problemi correlati