Seite 1 von 2
Loginsystem
Verfasst: Montag 11. Januar 2010, 09:27
von kostonstyle
hallo miteinander
in django gibt es schon ein fertiges Loginsystem, ich möchte aber nun ein eigenes programmieren, weil Datenbankfelder
anders definieren möchte. Zum Beispiel username Feld benötige ich nicht usw. Nun um ein eigenes Loginsystem zu realisieren
muss ich zuerst Datenbank Modelle definieren, welche und wieviele Felder, dass ich für das Konto erstellen von Benutzer
benötige. Dann gibt es da diverse Klassen und Methoden für Authentifiezierung und Logging. Zum Beispiel die User Klasse,
muss ich diese vererben?
Meine Frage, in einem Satz gefasst, wie würde ihr vorgehen?
Gruss kostonstyle
Verfasst: Montag 11. Januar 2010, 12:00
von Masaru
Nen Datenbank-Error-Wrapper schreiben und vor das Django-Login bappen.
>>Masaru<<
Re: Loginsystem
Verfasst: Montag 11. Januar 2010, 12:00
von tordmor
kostonstyle hat geschrieben: Zum Beispiel username Feld benötige ich nicht usw.
Wie unterscheidest Du Deine Benutzer, ohne Benutzername? An Deiner Stelle würde ich mich ernsthaft fragen, ob sich der Aufwand lohnt, oder ob nicht eine kleine Anpassung genügt, damit Du das django Loginsystem nutzen kannst.
Verfasst: Montag 11. Januar 2010, 14:10
von kostonstyle
ich würde es durch email adresse unterscheiden. warum nicht oder?
Nen Datenbank-Error-Wrapper schreiben und vor das Django-Login bappen.
was meinst du damit?
Verfasst: Montag 11. Januar 2010, 20:03
von apollo13
kostonstyle hat geschrieben:
Nen Datenbank-Error-Wrapper schreiben und vor das Django-Login bappen.
was meinst du damit?
Er meint zumindest nichts für deinen Fall relevantes. Ich würde das Django User modell erweitern (UserProfile zb), aber tausch es lieber nicht aus, die verlierst zu viel dad.urch
Verfasst: Dienstag 12. Januar 2010, 09:11
von kostonstyle
aber von django user modell brauche ich nicht alle Felder, zb Username brauch ich nicht, aber username ist ein muss feld.
es gibt ein tutorials, weiss nicht, ob richtig ist
http://www.hoboes.com/Mimsy/hacks/custo ... ntication/
Verfasst: Dienstag 12. Januar 2010, 12:35
von apollo13
Nun, du kannst zb die email-adresse hashen und das ins Userfeld schreiben, aber alles in allem ist es eine Frickellösung. Wenn du Django ohne auth verwenden willst, kannst du imo auch gleich eine eigene Lösung aus werkzeug/jinja/sqlalchemy verwenden; kommt aufs gleiche raus (Und ist wahrscheinlich weniger Arbeit).
EDIT:// Und der Link ist auch eher suboptimal, Django hat dafür AuthBackends, damit geht das einfacher…
Verfasst: Dienstag 12. Januar 2010, 13:15
von kostonstyle
Eben, das wollte ich euch fragen, wie soll ich es vorgehen, wenn ich eine Loginsystem erzeugen möchte...
und was meinst du mit
werkzeug/jinja/sqlalchemy
Verfasst: Dienstag 12. Januar 2010, 13:21
von Masaru
Er meint damit, dass wenn Du schon Django um seiner Authenzifizierungsfunktion kastrieren willst, Du auch gleich ein eigenes WebServer/App System mittels der Python Frameworks "Werkzeug", "Jinja" und "sqlalchemy" neuentwickeln könntest.
Verfasst: Dienstag 12. Januar 2010, 13:52
von kostonstyle
au....das kann ich wohl vergessen...
Verfasst: Dienstag 12. Januar 2010, 15:24
von apollo13
Zumindest würde ich dir davon abzuraten, das Django atuh system so stark zu ändern. Wenn du Django gut kennst geht es halbwegs, aber dennoch ist und bleibt es ein hack und ich werde es nie wieder machen^^
Verfasst: Dienstag 12. Januar 2010, 16:30
von kostonstyle
was würdet ihr davon halten, wenn ich auf ruby on rails umsteige? Möchte eigentlich nicht, aber das rails framework sollte in der webentwicklung stark involviert sein im gegensatz zu python oder wie sieht ihr den das?
Verfasst: Dienstag 12. Januar 2010, 16:47
von BlackJack
@kostonstyle: Rails mit Python zu vergleichen, ist Äpfel und Birnen zu vergleichen. Rails ist ein Webrahmenwerk und Python eine Programmiersprache. Das ist genau so sinnvoll wie Django mit Ruby vergleichen zu wollen.
Wenn Dir Rails als Webrahmenwerk mehr zusagt als Django, würde es natürlich Sinn machen umzusteigen.
Verfasst: Dienstag 12. Januar 2010, 17:22
von Masaru
Als Alternative zu Django würde ich ansonsten nochmal
Pylons in den Raum werfen.
Da hast Du die Basics drinnen, wie Du sie von Django her kennst, aber nicht so stark fokussiert und ausgearbeitet eben.
>>Masaru<<
Verfasst: Dienstag 12. Januar 2010, 18:36
von audax
apollo13 hat geschrieben:Zumindest würde ich dir davon abzuraten, das Django atuh system so stark zu ändern. Wenn du Django gut kennst geht es halbwegs, aber dennoch ist und bleibt es ein hack und ich werde es nie wieder machen^^
Also ich hab Django mal mit nem zusätzlichen Auth-System benutzt. Erstmal wurde das Interne probiert und wenn dort der Nutzer nicht gefunden wurde kam meins an die Reihe. Das war sogar gnadenlos extern und dessen Datenbank per SqlAlchemy angebunden. Wenn da ernsthaft Interesse am System besteht kann ich das mal zu nem Beispiel umändern. Das Ganze ist für Django 1.0 geschrieben.
Verfasst: Dienstag 12. Januar 2010, 20:57
von apollo13
audax hat geschrieben:apollo13 hat geschrieben:Zumindest würde ich dir davon abzuraten, das Django atuh system so stark zu ändern. Wenn du Django gut kennst geht es halbwegs, aber dennoch ist und bleibt es ein hack und ich werde es nie wieder machen^^
Also ich hab Django mal mit nem zusätzlichen Auth-System benutzt. Erstmal wurde das Interne probiert und wenn dort der Nutzer nicht gefunden wurde kam meins an die Reihe. Das war sogar gnadenlos extern und dessen Datenbank per SqlAlchemy angebunden. Wenn da ernsthaft Interesse am System besteht kann ich das mal zu nem Beispiel umändern. Das Ganze ist für Django 1.0 geschrieben.
Das glaub ich dir gut und gerne, aber ich nehme an du hast die Usernames synchronisert, also bei Bedarf in Django user angelegt (damit FKs etc gehen) und dann wird es unlustig, wenn du keinen username sondern zb nur email willst…
Verfasst: Mittwoch 13. Januar 2010, 07:57
von audax
Also...wo ist denn bitteschön das Problem, die Email als Username in Django zu nutzen? Ich mein, irgendeinen Primary Key sollte es ja geben.
Also ich hab jedenfalls in Django immer nur mit Benutzername und Passwort gearbeitet und hab nirgends weitere Felder angegeben, außer in meinem eigenen Profil, dass aber unabhängig davon war.
Liegt es etwa daran, dass das Feld "username" heißt und nicht "email"?
Verfasst: Mittwoch 13. Januar 2010, 08:24
von kostonstyle
ich habe gemeint, dass der username ein require field ist.
Verfasst: Mittwoch 13. Januar 2010, 08:37
von apollo13
@audax: email ist nicht unique (gut das kann man halbwegs umgehen). Was dann noch dazukommt ist, dass er keine Usernames verwenden will und somit auch das feld nicht ausfüllen will. Da das unique ist sollte man sich dafür was einfallen lassen (eg hashes der email). Ich sagte ja nicht, dass es nicht machbar wäre, sondern es ist nur nicht ganz trivial....
Verfasst: Mittwoch 13. Januar 2010, 11:26
von kostonstyle
so ich habe mich entschieden auf ruby on rails um zusteigen. Die Entscheidung war nicht leicht, weil ich Python noch eine recht schöne Sprache finde und dazu, seit ihr hier in Forum immer hilfsbereit.
Vielen Dank kostonstyle