2014-11-27 12 views
5

Come indicato nel titolo, quando dovrebbe essere utilizzato e quando invece dovrei implementare la mia autenticazione. In sostanza, mi chiedo se le autenticazioni create in alcuni tutorial (come lo this) siano sicure e sicure.Quando utilizzare Devise vs. Creating my own Authentication

Se non ho bisogno di e-mail di conferma, recuperabilità, ecc. (Un sacco del "jazz" associato a Devise), le informazioni sull'account sarebbero altrettanto sicure come se avessi creato il mio?

Se la risposta che sto cercando è ancora confusa, è necessario inventare qualcosa da utilizzare ogni volta che è possibile/ogni volta che si dispone di account? O dovrebbe davvero essere una decisione?

Nota: non mi riferisco specificamente a Devise, eventuali gemme di autenticazione possono essere sostituite.

risposta

6

Ho usato gemme come Devise fino a quando Rails ha aggiunto has_secure_password ad ActiveRecord. Ora faccio sempre il mio da solo perché alla fine ho sempre bisogno di alcune cose personalizzate che rendono difficile l'implementazione in una libreria esistente.

Ryan Bates ha un video eccellente proprio su questo argomento here.

1

Secondo me dovresti decidere in base al tuo progetto. Se stai lavorando su un piccolo servizio web con funzionalità minimaliste puoi aggiungere la tua autenticazione usando gli strumenti forniti da Rails. Ma se stai lavorando sulla cosiddetta "impresa", un grande progetto con funzionalità in rapida crescita, dovresti sicuramente usare devise, dato che con questa gemma, non passerai molto tempo a costruire le funzionalità di autenticazione esistenti, è molto facile in manutenzione e sicuro .

+1

Vedo, diresti anche che se ho bisogno di due diversi tipi di account - e uno richiede un elaborato - dovrei, senza dubbio, utilizzare l'idea per entrambi (anche se l'altro non richiede molte funzionalità) ? – Vasseurth

+0

@Vasseurth Non conosco le tue condizioni, ma si, penso di si. Non vedo nulla di male nelle funzionalità extra che non sono utilizzate da altri tipi di account (presumo che tu stia parlando di un modello con diversi tipi di utenti, se disponi di più modelli - puoi, naturalmente, configurarli separatamente). –

6

attuare la mia autenticazione

Ogni volta che si inizia a pensare se si deve creare il proprio di autenticazione, è necessario fermarsi. Prendi quell'idea, frantumala, spurgala di benzina e bruciala!

L'autenticazione è difficile. Ci sono sottigliezze che esistono nell'autenticazione e gli sviluppatori che sono abituati alla programmazione in stile CRUD stanno per perderle. Questo non vuole essere un insulto. Sono uno di quei programmatori e lavoro in sicurezza. Riconosci i tuoi punti di forza e di debolezza.

Devise (e framework di autenticazione più diffusi) hanno avuto migliaia di ore di revisione del codice, progettazione, test e tempo di produzione rispetto al framework che si sta per eseguire.

I wrote a blog post about a "smart" security feature che in realtà peggiorava la sicurezza di un'azienda. Questo è un buon esempio di come può essere sottile l'autenticazione e la sicurezza!

Problemi correlati