Migliore soluzione per l'autenticazione in Ruby on Rails [chiuso]


84

Sto cercando una soluzione preconfigurata da poter utilizzare nella mia applicazione RoR. Idealmente sto cercando qualcosa di simile all'autenticazione di moduli ASP.NET che fornisca la convalida della posta elettronica, i controlli di registrazione e consenta agli utenti di reimpostare le password. Oh sì, e mi permette facilmente di richiamare l'utente che è attualmente connesso all'applicazione.

Ho iniziato a esaminare i pezzi già scritti, ma l'ho trovato davvero confuso. Ho esaminato LoginGenerator, RestfulAuthentication, SaltedLoginGenerator, ma non sembra esserci un posto che abbia ottimi tutorial o fornisca un confronto tra di loro. Se c'è un sito che non ho ancora scoperto o se esiste uno standard de facto che la maggior parte delle persone usa, apprezzerei la mano.

Risposte:


83

AuthLogic sembra essere il nuovo ragazzo sul blocco e sembra essere la prossima evoluzione di restful_authentication, più facile da usare, ecc.

http://github.com/binarylogic/authlogic/tree/master

Modifica: ora che Rails 3 è uscito, Devise sembra essere il nuovo, nuovo ragazzo sul blocco

https://github.com/plataformatec/devise oppure ho implementato la mia autenticazione ora con il has_secure_passwordbuilt-in in Rails http://railscasts.com/episodes/250-authentication-from-scratch-revised

Nota a margine: Ruby Toolbox è un ottimo sito per trovare la migliore soluzione attuale in varie categorie (in base al numero di osservatori GitHub):

http://ruby-toolbox.com/categories/rails_authentication.html


Considererei davvero anche l'utilizzo di authlogic. è molto più pulito di restful_auth. Authlogic ha imparato da tutte le soluzioni precedenti e le ha riconfezionate in una soluzione più pulita e personalizzabile
taelor

Ho seguito il tuo consiglio e sono andato con Authlogic, e sono davvero soddisfatto. Potrebbe volerci un po 'più di tempo per l'installazione, perché è molto pulito e facile da capire. Non ci sono pile spaventose di codice generato.
Guy C

Sì, ci vuole sicuramente più tempo per l'installazione. Vorrei che avesse rimosso un po 'dell'astrazione lì e l'avesse spedita con cose di cui tutti hanno bisogno come password dimenticata e conferme e-mail incluse. Ma nel complesso, è ancora abbastanza buono.
Brian Armstrong

Sono stato in grado di combinarlo anche con OpenID e RPXNow, il che si è rivelato fantastico, esempio qui: buyersvote.com/user_session/new
Brian Armstrong

Il progetto di esempio rende semplicissimo essere subito operativi. Basta git clonare il repository, copiare in un file database.yml e hai pronto un sito completamente autenticato.
Casey Watson

22

Lo consiglierei davvero autenticazione riposante . Penso che sia più o meno lo standard de facto.


1
Secondo questo. Recentemente ho dovuto implementare un sistema di autenticazione multi-sito piuttosto complesso, che ho basato sul design RestfulAuth, fornendo la stessa API al resto dell'applicazione come farebbe RA, Sicuramente un bel chiaro facile da lavorare con API con facile da leggi il codice :-)
Laurie Young il

10

Per una soluzione davvero semplice vai con Clearance .

Se stai cercando più opzioni, Devise è un'ottima soluzione. Utilizza Warden, un sistema di autenticazione basato su rack.


1
Posso garantire per Devise. L'ho impostato nella mia app e posso dire che è facile da usare, almeno per me come un principiante relativo. Ho scritto sul blog della mia esperienza al riguardo qui: therealmattslay.blogspot.com/2010/06/…
MattSlay

Spiacenti ... Ecco il link corretto: mattslay.com/devise-authentication-for-rails
MattSlay


3

Solo una nota, LoginGenerator e SaltedLoginGenerator sono stati sostituiti da Restful Authentication e non sono supportati sulle versioni più recenti di Rails - non perdete tempo con loro, anche se all'epoca erano fantastici.


3

Vorrei anche sottolineare un eccellente tutorial / discussione sull'estensione delle funzionalità principali di Restful Authentication, nel caso in cui tu stia cercando qualcosa di un po 'più robusto.


1
Per favore, non credermi terribilmente scortese, ma penso che la voce del forum sia un esempio della parte peggiore di Restful Authentication. Ci sono una moltitudine di funzionalità mancanti ed ecco una serie di passaggi super lunghi (e contraddittori) per aggiungere tali funzionalità in una alla volta. Qualunque sia l'opposto di DRY, sono abbastanza sicuro che sia così. Solo che non ti stai ripetendo, stai ripetendo centinaia di altri sviluppatori per includere cose che avrebbero dovuto essere incluse o opzionali per RA dall'inizio.
John Munsch

3

Mi piace davvero l'autorizzazione di Thoughtbot. Molto semplice e ha alcuni buoni ganci ed è testabile.


3

AuthLogic sembra essere quello che vuoi per questo. È molto configurabile e, sebbene non generi il codice per te, è abbastanza facile da usare. Per la convalida della posta elettronica e il recupero della password probabilmente vorrai utilizzare la :perishable_tokencolonna. AuthLogic se ne prende cura, devi solo ripristinarlo quando viene utilizzato. Per informazioni su come configurare un'app di base, puoi dare un'occhiata a Railscast di Ryan Bates su AuthLogic e all'app di esempio "ufficiale". Ben Johnson, il creatore di AuthLogic, ha anche scritto un post sul blog su come reimpostare RESTfully le password.

Sfortunatamente non posso pubblicare più di un link, ma i link al railscast, il post del blog per la reimpostazione della password e l'app di esempio sono tutti nel README (vedi il repository AuthLogic per il README)

Aggiornamento: ora posso pubblicare più link, quindi ne ho collegati altri. Grazie marinatime per aver aggiunto il link nel frattempo



2

restful_authentication è uno strumento potente che è molto flessibile e fornisce la maggior parte di ciò che stai cercando fuori dagli schemi. Tuttavia, un paio di avvertimenti:

  1. Non pensare in termini di "controlli". In Rails Model, View e Controller sono molto più indipendenti rispetto a ASP.NET 'Webforms-style'. Stabilisci cosa vuoi da ogni livello in modo indipendente, scrivi test / specifiche per abbinare e assicurati che ogni livello stia facendo quello che ti aspetti.
  2. Anche se stai usando un plugin non c'è alcun sostituto per la lettura (almeno una parte) del codice generato. Se hai un'idea generale di cosa sta succedendo sotto il cofano, troverai il debug e la personalizzazione molto più facili.

2

Il plugin restful_authentication e altri plugin che lo estendono rispondono perfettamente alle tue esigenze. Una rapida ricerca su github.com rivelerà molti tutorial, esempi ed estensioni. Basta andare qui:
- http://github.com/search?q=restful_authentication

Ci sono diversi progetti che usano restful_authentication solo per fornire esempi di un'app Rails essenziale con solo le parti di autenticazione.

  1. http://github.com/fudgestudios/bort - Un'app per rotaie di base con: Autenticazione RESTful
  2. http://github.com/mrflip/restful_authentication_example - Un altro progetto con un ottimo esempio di come utilizzare restful_authentication
  3. http://github.com/activefx/restful_authentication_tutorial - Come sopra, con alcuni altri plugin in bundle.
  4. http://railscasts.com/episodes/67-restful-authentication - un ottimo screencast che spiega restful_authentication

Questa informazione dovrebbe essere sufficiente per farti iniziare a trovare testa e croce ... buona fortuna.


2

Sto solo aggiornando questo: Railscast # 250 di Ryan Bates mostra la creazione di un sistema di autenticazione da zero ....


2
Sebbene RailsCast su un sistema di autenticazione su misura sia ottimo (e ho implementato un sistema simile più volte), non è affatto pre-costruito e non fornisce tutte le funzionalità di un setup come Devise.
Colin R

D'accordo, ma Devise può essere piuttosto ingombrante. A mio parere, è possibile risparmiare molto tempo e dispiacere costruendo il proprio sistema di autenticazione a meno che non si intenda davvero sfruttare appieno le funzionalità offerte da Devise.
Adam Jonas

2
Sto cercando una soluzione preconfigurata da poter utilizzare nella mia applicazione RoR.
Colin R

0

Un altro voto per Clearance - forse non così personalizzabile o "in" come authlogic, ma in termini di solo essere in grado di rilasciarlo sul posto e andare, vale sicuramente la pena dare un'occhiata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.