WebView Login

N

N3cron

Fortgeschrittenes Mitglied
1
Hallo zusammen. Da ich noch Anfänger bin, hab ich da und da noch Probleme.

Ich habe ein App geschrieben mit WebView. Dort wird sich automatisch angemeldet mit Username und Passwort. Das klappt auch. Jetzt war aber die Anfrage der App etwas grösser da es für die Arbeit genutzt werden kann.

Mein Problem, ich brauche keine automatische Anmeldung mehr.

Der User soll sich nun einmal mit seinem Username und Password einloggen. Danach soll webview, wenn die Anmeldung erfolgreich war Username und Password speichern. Danach soll jeder User bei neustarten der App automatisch angemeldet werden.

Wie kann ich das als "Anfänger" recht einfach bewerkstelligen?

Danke für evtl Hilfe!
 
Wie ist denn die Anmeldung umgesetzt?

So
http://de.m.wikipedia.org/wiki/HTTP-Authentifizierung

Aber du weist... Sicher ist das nicht. Denn so wie ich das verstehe sollen Username/Password in der App gespeichert werden. D.h. jeder der die App installiert soll ohne Passwort Eingabe sofort reinkommen. Korrekt?

cu
 
Zuletzt bearbeitet:
Bisher hab ich das mit dem Autologin so gemacht.
Die Personen die sich die App installieren wollen, müsse auf der Seite einen Username und Passwort angeben. Sobald das einloggen erfolgreich war, soll die app user und pass speichern.
Damit man sich beim nächsten mal nicht mehr anmelden muss. User und Passwort wurde schon an alle verteilt, und jeder kann sich vom PC aus dort einloggen.
Das das ganze am Handy oder Tablet etwas umständlicher ist, dachte ich das einfach speichern lasse, oder user und pass schon drin steht und man nur noch auf login drückt.

Was heisst "SICHER" ? Es ist für die Arbeit und der Server ist auch von ausser nicht erreichbar.

HTML:
webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setBuiltInZoomControls(true);
        // webView.loadUrl("http://www.google.de");
        webView.setWebViewClient(new WebViewClient());
        String url = "http://ibsserver/index.php?form=UserLogin";
        String data = "name=**** & password= *****";
        webView.postUrl(url, EncodingUtils.getBytes(data, "base64"));
 
Zuletzt bearbeitet:
Ah, und was passt denn jetzt nicht? Also wo ist konkret das Problem?

cu
 
das ich erst einmal probiert habe wie ich mich einloggen kann. Dies klappt jetzt automatisch.

Jeder hat ja einen anderen Username und Passwort. Kann jetzt nicht für 80 Personen das in jeder apk einfügen.

Also möchte ich das man sich einloggt, die app user und pass speichert, und beim naechsten start der app das ganze von alleine passiert.

Vom Forum aufbau ist es so wie hier (Android Hilfe). Name und password. Login
 
Naja, ist doch ganz einfach. Beim ersten Start der App fragst du (d.h. deine App fragt und nicht die Webseite) den Nutzer nach Username/Passwort und speicherst das dann in deinen Preferences. Dann nutzt du immer diese gespeicherten Werte für den WebWiew Login.

Aber wirklich sicher ist das so nicht. Denn es ist (Z.B. bei einem geklauten Handy) relativ einfach dann das Passwort aus deinen App Preferences auszulesen.

Aber um es besser zu machen müsste man was am Webserver machen.

cu
 
Hast du vielleicht einen Link für ein Example/Tutorial um es verstehen zu koennen wie es geht?

Geklaut waere nicht schlimm. Ist Firmen intern. Von aussen kommt keiner in das Netz, und den Admin kenne ich, man koennte also den User löschen
 
Naja, Google doch mal, wie man in ner App den Nutzer zwei Strings eingeben lässt und diese dann speichert... Das sind "Hallo Welt" Grundlagen.

cu
 
Code:
String url = "http://ibsserver/index.php?form=UserLogin";
String data = "name=**** & password= *****";
webView.postUrl(url, EncodingUtils.getBytes(data, "base64"));

Du überträgst dein Username und Password in Klartext, dann kannst du gleich darauf auch verzichten. ;)
 
Naja, das hat ja schon derjenige versaut der die Website erstellt hat ;-)
Wenn der Login per Post auf http akzeptiert wird...

cu
 
Morgen. Verstehe nicht ganz. Wollt ihr mir helfen oder einfach nur was dazu schreiben.
Es ist ein Forum auf dem keiner zugriff hat. Es ist nur Mitarbeitern möglich.
Das Forum ist von der Seite World Wide Web Consortium (W3C)

Ich hoffe es kommt mal etwas konstruktives.

Die Antwort "Das sind "Hallo Welt" Grundlagen." war sowas von blöd.
Weiss aber selber nicht wie es geht. Top.

Also. Nochmal, das was ich suche
Webview öffnet sich. Mitarbeiter gibt sein username und passwort an. Server vergleicht und der Mitarbeiter ist eingeloggt.
Jetzt soll es zur speicherung der Daten kommen.
Mitarbeiter beendet das app.
Beim nächsten start soll entweder user und pass schon drin stehen, so das er nur noch auf login klickt, oder falls möglich von alleine eingeloggt werden.

Das waere die schönste Lösung.

Bitte um Hilfe
 


Das Problem bei Deinen Code ist, das du Passwort und Benutzernamen in Klartext überträgst. Da Verbindungen im Internet über mehrere Rechner laufen, kann jeder dieser Rechner deine Passwörter mitschneiden. Man-in-the-middle-Angriff

Wie du es genau machen muss, hängt von Schnittstellen ab, die der Server zu Verfügung stellt. Für so etwas gibt es keine 08/15 Lösungen.

Ich würde die erste Verbindung (login) mit HttpsUrlConnection herstellen, und die zurück gelieferten Daten dann in ein WebView ausgeben. ?Security Tips | Android Developers

Die Passwörter einfach in die SharedPreferences speichern, reicht nicht (Einführung in das Thema Storage Options | Android Developers). Du solltest die Daten auch verschlüsseln, auf ein gerooteten Handy kann man die Daten einfach auslesen.
 
markus.tullius schrieb:
Du solltest die Daten auch verschlüsseln, auf ein gerooteten Handy kann man die Daten einfach auslesen.

Um die Settings zu verschlüsseln muss der Nutzer bei jedem App Start sein sicheres Passwort eingeben (alles andere ist nur verschleiern). Und das ist ja irgendwie sinnfrei wenn es darum geht die Passworteingabe zu ersparen ;-)

Man könnte auch einfach den Cookie speichern den der Server beim Login zurückgibt. (ich vermute das WebWiev speichert die nicht per default persistent? Weil wenn doch dann wäre der Nutzer beim nächsten App Start ja automatisch wieder eingeloggt).

cu
 
Immer noch besser, als die Schlüssel in Klartext zu speichern.

Wie heißt es so schön:
Es gibt keine 100% Sicherheit, man kann den Angreifer nur das Leben so schwer machen, das er sich ein einfacheres Ziel sucht.
;)
 
Stimmt, aber nenne es bitte bitte nicht "Verschlüsselung" ;-)

Es ist nix falsch an Verschleierung (wir sind uns ja einig das man das hier tun sollte), das darf man also durchaus so beim Namen nennen.

cu
 
Wo du recht hast, hast du recht.
:thumbup:

Der ursprüngliche Beitrag von 22:33 Uhr wurde um 22:33 Uhr ergänzt:

Ich hoffe es kommt mal etwas konstruktives.

Die Antwort "Das sind "Hallo Welt" Grundlagen." war sowas von blöd.
Weiss aber selber nicht wie es geht. Top.

Die Aussage verstehe ich nicht, das sind Grundlagen. Kurz nach "Hallo Welt". Statt sich zu beschweren, solltest du dich eher bedanken, dass sich jemand versucht hat, dir zu helfen.
 
Versteh mich da nicht falsch markus.tullius. Ich bedanke mich für Eure Beiträge.
Aber so wie es mir scheint ist das keine Hallo Welt Grundlage. Und so äusserungen wie..... da muss das rein aber wie genau muss ich auch erst schauen. Dann lieber keine Antwort. Fand die Antwort einfach nicht angebracht. Sry, wenn es falsch verstanden wurde.

Zum Thema Sicherheit. Da gebe ich Euch vollkommen recht.
Glaube aber da das nur ein Internes Forum ist nicht das wir Hacker zu erwarten haben. Das ganze läuft über Wlan. Da braucht man ja auch erst einmal den Schlüssel und Passwort zu.

Oder verstehe ich Euch da falsch?

Für mich als Anfänger waere es erst einmal wichtig zu wissen, wie ich das ganze angehe damit die Person X nach dem ersten mal einloggen, immer wieder automatisch eingeloggt wird.


Das ich jetzt name und pass drin stehe habe, dient nur als versuch um zu sehen ob es klappt mit der automatischen anmeldung.

Jetzt geht es mir darum, das alle Personen das auch koennen.

Danke für Eure Beiträge
 
Fang doch einfach mal ganz simpel an...

Schau beim Start der App ob in deinen Einstellungen Benutzername/ Passwort vorhanden sind. Wenn nicht dann öffne ein Fenster wo der Nutzer beides eingeben kann.



Oder einfacher (das ist vermutlich das einfachste, für und wieder bezüglich der Sicherheit wurde hier ja schon geklärt), mache nen Einstellungsmenü wo der Nutzer das eingibt.
http://developer.android.com/guide/topics/ui/settings.html

Da brauchst du auch nicht weiter programmieren. In deiner WebWiev nimmst du dann einfach diese Werte.

cu
 
Zuletzt bearbeitet:
Danke schön. Werde es mir morgen in Ruhe anschauen.
Hoffe ich bekomme es damit umgesetzt.

Dank auch an die anderen.

Ps. Falls Ideen oder andere Vorschläge da sind. Gerne nehme ich diese an.
 

Ähnliche Themen

F
Antworten
0
Aufrufe
838
FlorianAlfredo
F
K
Antworten
3
Aufrufe
1.174
Kapikalaani
K
H
Antworten
0
Aufrufe
937
HoustonWeHaveAProblem
H
Zurück
Oben Unten