Loginsystem

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Nen Datenbank-Error-Wrapper schreiben und vor das Django-Login bappen.

>>Masaru<<
Zuletzt geändert von Masaru am Montag 11. Januar 2010, 12:01, insgesamt 1-mal geändert.
tordmor
User
Beiträge: 100
Registriert: Donnerstag 20. November 2008, 10:29
Wohnort: Stuttgart

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.
http://www.felix-benner.com
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

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
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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/
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

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…
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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.
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

au....das kann ich wohl vergessen...
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

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^^
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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?
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.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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<<
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

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.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

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…
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

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"?
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

ich habe gemeint, dass der username ein require field ist.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

@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....
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

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
Antworten