2014-08-31 25 views
17

Il mio obiettivo è limitare l'accesso all'API per le applicazioni client specificando la chiave API. Vari servizi ti consentono di accedere alle loro API tramite la chiave segreta, che devi ottenere per eseguire le richieste.Chiave API segreta per accedere al framework Django REST

Nota: questo non è correlato all'autore dell'utente.

Esiste una soluzione semplice per farlo nel framework django rest? O semplicemente per passare la chiave nell'intestazione della richiesta e poi gestirla manualmente?

saluti

+1

Sei riuscito a risolvere questo? Mi chiedo se è possibile condividere un esempio, forse? Grazie. – Silko

risposta

16

utilizzare la classe TokenAuthentication, come documentato here.

Sarà inoltre necessario impostare le autorizzazioni appropriate, probabilmente utilizzando la classe IsAuthenticated.

Modifica: Scusa: rileggendo il post, sembra che tu voglia una chiave segreta globale, non una per utente. Suggerirei un custom permission class che controlla l'intestazione della richiesta e fallisce se non è presente/non è corretto.

+7

Prima di tutto, grazie per aver creato uno strumento meraviglioso come django-rest-framework :) Sembra essere esattamente quello che stavo cercando. Cercherò di implementare il permesso personalizzato e tornare qui con esso. Molte grazie ancora :) –

+2

Penso che @ArazAbishov stia puntando a configurare un sistema simile all'API FaceBook - un'alternativa/estensione all'autenticazione dell'utente - così un "client" può creare un'applicazione sul suo sistema, quindi inviare richieste per conto di di utenti, ma ancora legati alla loro applicazione, limitati alle autorizzazioni che l'app è concessa – Chozabu

Problemi correlati