Login Anmeldung authentifizierung im hindergrund eine MySql Datenbank

  • Antworten:15
Sebastian
  • Forum-Beiträge: 5

17.02.2016, 17:07:21 via Website

Aloha Leute,

ich würde gerne mal wissen wie das so läuft wenn man eine Abfrage Login in einer App hat zu Authentifizierung des Profils des Users.

Als Beispiel die App lovoo man hat sich die gezogen da kommt das Anmelde Fenster gib das PW ein (spam241) Benutzer(Don) Schiebt es in die Datenbank Natürlich VERSCHLÜSSELT IST DOCH KLAR.
wie Kann ich das Code mäßig Realisieren so das ich mich anmelde und abmelden kann.

  • Ich habe gehört das die Datenbanken auch verschlüsseln können.
  • Code schnipsel währen hilfreich da mir die Vorschtellung fehlt.

MfG
Sebastian Schwill

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2016, 17:19:29 via Website

Hallo Sebastian,
Herzlich wilkommen hier im Forum :)


Normalerweise hat man für Login und Nutzerprofile etc. eine Online Datenbank und eine Anbindung per Rest API über welche alle anfragen für Daten dann gehen.

Zuerst registiert man sich. Dafür muss dann ein neuer Eintrag in den den entspechenden Tabellen gemacht werden (je machdem wie die DB Struktur aufgebaut ist).
Dann gibt der Nutzer ein Passwort an. Dies wird verschlüsselt oder meist nur ein Hash Wert gebildert.
Dieser Hash wird dann in der DB gepeichert.
Beim nächten Login machst du wieder nur ein Hash des Passworts und schickst den an deinen Server. Dieser prüft dann ob beide Hashes Identisch sind und lässt dich rein wenn das der Fall ist.
Natürlich kann man auch noch nen Autologin einbauen etc. aber das sind dann schon erweiterungen.

Was meinst du mit DB Versclüsseln?
Wenn diese online liegt und deine API sicher ist, dürfte keiner Unbefugt darauf zugreifen können.
Du meintest eine Lokale DB oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sebastian
  • Forum-Beiträge: 5

17.02.2016, 17:57:42 via Website

Pascal P.

Normalerweise hat man für Login und Nutzerprofile etc. eine Online Datenbank und eine Anbindung per Rest API über welche alle anfragen für Daten dann gehen.

Ja das ist mir schon klar. Ich werde zum entwickeln eine locale db benutzen

  • Lampp, Mysql, heidisql als DBMS
    youtube.com watch?v=X9bboz-z_1s
    was sagst du zu dieser lösung

Pascal P.

Was meinst du mit DB Versclüsseln?

ich bin nicht sicher was du meinst aber ich glaube du meins (Was meinst du in der DB Verschlüsseln) dass es eine Funktion gibt die Passwörter Verschlüsselt in der DB

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2016, 18:09:13 via Website

Also von der Youtbe lösung halte ich nicht viel.
Hier bindest du den JDBC Driver ein und machst das SQL direkt in Java.
Das sollte man am besten vermeiden, denn so ist das ganze relativ unsicher.
Außerdem, wenn du die App mal nicht zuhause benutzen willst, brauchst du einen externen Webserver und diese erlauben meist keinen externen Zugriff auf SQL.

Wenn du es richtig machen willst, hast du eine HTTP API geschreiben in PHP ö.ä. welche anfragen entgegenimmt, überprüft und Daten aus der DB ausgibt bzw. speichert.
Dann muss die App nichts von SQL etc. wissen sondern nur, due URL unter wer sie den webservice errrichen kann.

Und das mit dem Verschlüsseln, man verschlüsselt keine ganze DB, wenn dann nur einzelne Werte.
Außerdem habe ich ja schon gesagt, dass man eh nicht das PW benutzt sondern einen generierten Hash, woraus sich das eigentliche PW nicht mehr rekonstruieren lässt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sebastian
  • Forum-Beiträge: 5

17.02.2016, 18:38:01 via Website

Wie machen es die Pro's wenn die eine Datenbank benutzen wenn sie über Internet gehen?

  • wie bei lovoo (sie haben doch alle Datenbanken mit Person und PW, User)
  • meetone (und hier)

Die frage ist wie die Zugangsdaten aus dem GAN auf den Handy landen und vom Handy auf Datenbank.

Das mit den Datenbank Server ist mir bewusst doch ich kann mir keinen leisten erst wenn die App fertig ist, Deswegen local

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2016, 19:21:00 via Website

Wie gesagt,
der Standardweg ist es üer eine API zu gehen die der Server anbietet.
Der Client ruft denn eine Url auf und bekommt die Daten, meist im JSON Format.
Diese muss er dann verarbeiten und ggf. dem Nutzer anzeigen o.ä.

Was ist ein GAN? Noch nie davon gehört.

Ja aber wenn du es lokal machst, dann bitte gleich richtig.
Lokal hast du doch auch einen Webserver. Auf diesem musst du die API programmmieren, d.h. du musst dir überlegen welche Funktionen du brauchst und bauch diese dann ein. Da bietet sich PHP an, das dies auf fast jedem Server unterstützt wird.

Machst du das mit der API über PHP nämlcih nicht, kannst du wenn du ferig bist, deine komplette App umschreiben, das macht wenig Sinn.

Zudem: Webserver sind nicht sehr teuer, geeigenete und billige Angebote finden sich ab 1,50€ pro Monat.
Alternativ kannst du zum testen auch einen freehoster wie kilu.de etc. benutzen. Funktionieren tut das genauso, fürs Produktivsystem würde ich allerdings eine eigene Domain bevorzugen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sebastian
  • Forum-Beiträge: 5

17.02.2016, 20:01:25 via Website

aha ok.

GAN ist das Global Area Network spricht Das Größte Netzwerk weit vor LAN = Local Area Network. ist das Kleinste Eins vor Piconetz = wo sich mindestens 2 Geräte verbinden.

— geändert am 17.02.2016, 20:02:14

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2016, 20:18:16 via App

Und warum willst du die Zugangsdaten aus dem Netzwerk (Gan) Theoretisch hat doch jeder Nutzer eigene PWs

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sebastian
  • Forum-Beiträge: 5

17.02.2016, 20:45:53 via Website

Handy in der Hand 100 Km von zu Hause im Feld kann auch ein WLAN sein es war nur ein Beispiel

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2016, 20:47:48 via App

Ok das stimmt aber ein Server brauchst du trotzdem mit Api dazu und man hat kein Problem mehr egal über was man ins inet geht. (Vorrausgesetzt der Server hat ne öffentliche IP)

LG Pascal //It's not a bug, it's a feature. :) ;)

Sebastian

Antworten
Henrik Martens
  • Forum-Beiträge: 607

18.02.2016, 08:03:36 via App

Eine Realisierung, ohne PHP Api, direkt über die App ist zwar möglich, aber in deinem Fall nicht praktikabel.

Wenn du eine App für dich und drei Freunde schreibst, kannst du das machen, hab ich so auch schon gelöst.
Wenn du die App allerdings veröffentlichen willst, musst du über eine PHP Api arbeiten, sonst kann jeder Nutzer mit etwa Geschick die Daten deinen Servers auslesen, und Daten einsehen, löschen, oder verändern.

Ich würde, wie Pascal schon sagte, direkt so arbeiten, auch in der Entwicklungsphase, sonst musst du später ziemlich viel Aufwand betreiben, um den SQL-Part deiner App neu zu schreiben.

Antworten
Fabian Simon
  • Forum-Beiträge: 359

18.02.2016, 11:38:09 via Website

Nochwas.
Wenn du eh ne App in Java schreibst kannst du auch den Server in Java Schreiben.
Ich bevorzuge Tomcat.
Wenn du aber "nur" eine Rest Schnittstelle Benutzt, schau dir mal Jersey an... Bietet einen Mini Webserver... jedoch sollte man im Produktiven bereich lieber auf vollwertigere Applicationserver setzten. (vollwertiger = Tomcat hat keine Java Application Server lizenz | vollwertig: Glassfish ist zum Beispiel ein vollwertiger Java App Server)
Auf Androidseite, um die Restfulschnittstelle zu nutzen empfiehlt sich retrofit.
Gruß

Antworten
Henrik Martens
  • Forum-Beiträge: 607

18.02.2016, 11:55:42 via Website

Aber auch hier bleibt das Problem:

Server / Datenbank nicht direkt über die App ansteuern, sondern über eine PHP Api.

Oracle selbst bietet zur Not auch genügend Datenbank-Lösungen. Allerdings sehr teuer.

Antworten
Fabian Simon
  • Forum-Beiträge: 359

18.02.2016, 12:33:27 via Website

Nix PHP sonder JAVA
Ein JEE System

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.02.2016, 12:40:45 via App

Kann man machen, muss man aber nicht.
Ob man jetzt einen Java Application Server nimmt oder nicht bleibt einem selber überlassen. Ich sage jedoch PHP server sind eindeutig billiger.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian Simon
  • Forum-Beiträge: 359

18.02.2016, 13:01:24 via Website

Druchaus möglich ich zahle für meine V-ROOT Tomcat Server 8 € pro Monat.
Jedoch kann man sich auch openshift.com mal näher anschauen...
Dafür Spricht:
Mein Bleibt bei einer Sprache Kann also beispielsweise Schnittstellendateien direkt verwenden (Pseudo Objekte).
Zukunftsicherer (bei Komplexeren Dingen evtl auch schneller)
(Hab mal für ne Firma gearbeitet, da haben wir mit dem Zendframework komplexe Seiten entwickelt--> Die waren soo larm)
Und man sollte sich in der Java welt aufjedenfall mal mit jee auseinander gesetzt haben... ob der jetzt Tomcat, Jetty oder Classfish heißt ist da eig. egal.

— geändert am 18.02.2016, 13:17:32

Antworten