2015-01-17 8 views
7

Ho un'app iOS che utilizza un'API basata su framework Django REST per archiviare, aggiornare, recuperare i dati da un database. Ho bisogno di fornire i due più seguenti funzionalità che memorizza i dati degli utenti al server:Quale autenticazione utilizzare quando si utilizza Django Rest Framework e l'app IOS?

  1. il login in e-mail
  2. il login in Facebook

Sembra che ci sia due diversi sistemi di autenticazione che posso uso:

  1. Django User Authentication System
  2. Django Rest Framework Authentication

Come devo gestirlo nella mia API?

+0

use Django Rest Framework Authentication – Anentropic

+0

Grazie! L'autenticazione DRF è piuttosto semplice quindi l'autenticazione utente Django. Facile da imparare :) –

risposta

13

Quando si utilizza il framework Django REST con iOS, a meno che non si utilizzi un browser, il sistema di autenticazione Django standard è fuori questione. Questo è esposto attraverso lo DRF authentication system as SessionAuthentication e si basa sulla possibilità che l'applicazione sia in grado di trasferire cookie e il token CSRF con la richiesta, che in genere non è possibile.

Nella maggior parte delle situazioni dove si sta già utilizzando il sistema di autenticazione Django, e si può fidare della memorizzazione delle password dell'applicazione, si dovrebbe use something like BasicAuthentiction. La maggior parte delle persone non può, o non si fida del proprio ecosistema di applicazioni, quindi utilizza un sistema di autenticazione basato su token like TokenAuthentication o OAuth2Authorization (in combinazione with an OAuth provider). Puoi leggere ulteriori informazioni su ciascun tipo di autenticazione in this answer on Stack Overflow.

Ma nella vostra situazione, si sono fondamentalmente limitati al solo uso qualcosa come OAuth 2. Questo perché è necessario associare un utente a un token e la maggior parte dei sistemi di autenticazione richiede di fornire un nome utente e una password. Per gli account social, questo di solito non è il caso, e normalmente non sarebbero in grado di accedere. OAuth 2 funziona in combinazione con il login standard di Django, quindi non si limita solo a un nome utente e una password. Ho scritto altro su come funziona in this detailed Stack Overflow answer.

+0

Grazie! Ha aiutato :) –

Problemi correlati