2013-03-12 7 views
17

Ich bin durch die ausgereiften Frameworks in Python (Django/Flask) ziemlich verwöhnt worden, also muss ich mich fragen, ob es bereits ähnliche Frameworks in Go to django.contrib gibt .auth oder Flask-Login?Gibt es ein Go-Framework oder -Paket, das Unterstützung für die Benutzerauthentifizierung bietet?

Der Hauptanwendungsfall besteht in der einfachen Benutzerauthentifizierung und in der Lage, sie zu erweitern, um einige berechtigungsbasierte Weiterleitungen innerhalb der App zu ermöglichen.

+0

Revel hat twitter/facebook Proben => zur Authentifizierung http://robfig.github.com/revel/samples/index.html – Alfred

+0

Wie Produktion bereit ist schwelgen? – Sologoub

+0

Um ehrlich zu sein, ich weiß es nicht. Ich habe dieses Revel vor einer Weile gefunden und sehe ziemlich interessant aus. Deshalb habe ich es zu einem Kommentar gemacht, anstatt zu antworten. Aber Revel hat viele Commits. Ich denke du solltest Autor fragen? – Alfred

Antwort

24

Soweit ich weiß, gibt es keine. Die nächstgelegene Standardauthentifizierung, die Sie wahrscheinlich erhalten, ist über Google AppEngine, wo das Google-Konto user abgerufen werden kann und bestimmte Pfade für die App administrators only festgelegt werden können.

In einem Standard-Go-Webserver müssen Sie in der Regel Ihre eigene Authentifizierung durchführen, aber es ist nicht so schwierig wie es klingt. Viele Frameworks isolieren Sie von Entscheidungen, die eigentlich sehr wichtig sind. In typischer Go-Mode müssen Sie diese Entscheidungen basierend auf den Anforderungen Ihrer App treffen und dann die vorhandenen Bibliotheken auswählen, die für Sie geeignet sind.

Login-Seite

Überall dort, wo Sie Ihre Benutzer müssen sich anmelden, werden Sie wahrscheinlich ein HTML-Formular verwenden. Diese werden normalerweise mit dem html/template-Paket gerendert. Verwenden Sie request.FormValue, um die Werte abzurufen, wenn das Formular übermittelt wird.

Datenbank

Es gibt eine Reihe von Möglichkeiten zum Speichern von Benutzerinformationen; auf dem Dateisystem mit os oder in einer SQL-Datenbank mit database/sql. Es gibt auch ausgereifte Treiber für einige NoSQL-Datenbanken, einschließlich MongoDB und Redis.

Passwörter

Um Hashes Passwörter zu berechnen und zu vergleichen, werden Sie einen bereits existierenden Mechanismus verwenden möchten, so dass Sie es nicht selbst neu erfinden. Das go.crypto-Subrepository stellt hierzu ein bcrypt-Paket bereit.

Sessions

Wenn Sie Sitzungsdaten speichern möchten, können Sie eine Lösung wie gorilla/sessions verwenden können. Abhängig von Ihren Sicherheitsanforderungen können Sie die Sitzungsdaten direkt in einem (optional secured) Cookie speichern oder Sie können es in einem Backend speichern und nur eine Sitzungs-ID im Cookie speichern.

Verwandte Themen