2013-03-12 9 views
17

Sono diventato piuttosto rovinato dai framework maturi disponibili in Python (Django/Flask), quindi mentre sto iniziando a imparare Go, devo chiedermi se esistono già framework simili in Go to django.contrib .auth o Flask-Login?Esiste un framework o pacchetto Go che fornisce supporto per l'autenticazione utente in scatola?

Il caso d'uso principale è quello di gestire l'autenticazione utente semplice ed essere in grado di estenderlo per adattarsi ad alcuni instradamenti basati su permessi all'interno dell'app.

+0

Revel ha campioni Twitter/Facebook per autenticare => http://robfig.github.com/revel/samples/index.html – Alfred

+0

Come produzione pronto è festeggiare? – Sologoub

+0

Ad essere sincero, non lo so. Ho trovato questo Revel qualche tempo fa e sembra piuttosto interessante. Ecco perché ho fatto un commento invece di una risposta. Ma Revel ha molti impegni. Immagino che dovresti chiedere all'autore? – Alfred

risposta

24

Per quanto ne so, non ce ne sono. L'autenticazione più recente che è possibile ottenere è probabilmente tramite Google AppEngine, in cui è possibile recuperare l'account Google di user e determinati percorsi possono essere definiti per l'app administrators only.

In un server Web Go standard, in genere è necessario eseguire il rollover della propria autenticazione, ma non è così difficile come sembra. Molte strutture ti isolano dalle decisioni che sono in realtà abbastanza importanti; nel tipico stile Go, dovrai prendere queste decisioni in base alle esigenze della tua app e quindi scegliere le librerie esistenti che fanno al caso tuo.

pagina di Login

Ovunque è necessario agli utenti di accedere, probabilmente userai un form HTML. Questi saranno tipicamente renderizzati usando il pacchetto html/template. Per recuperare i valori quando viene inviato il modulo, utilizzare request.FormValue.

Database

Ci sono un certo numero di modi per memorizzare le informazioni utente; sul file system con os o in un database SQL utilizzando database/sql. Esistono anche driver maturi per alcuni database NoSQL, tra cui MongoDB e Redis.

password

per calcolare e confrontare hash per le password, ti consigliamo di utilizzare un meccanismo preesistente in modo che non c'è bisogno di reinventare voi stessi. Per questo, il sottorepository go.crypto fornisce un pacchetto bcrypt.

Sessions

Se si desidera memorizzare i dati di sessione, è possibile utilizzare una soluzione come gorilla/sessions. In base alle esigenze di sicurezza, è possibile memorizzare i dati di sessione direttamente in un cookie (opzionalmente secured) oppure è possibile memorizzarli in un back-end e memorizzare un ID di sessione nel cookie.

Problemi correlati