00 Stimmen

Android: WebView mit Login

Frage von BärBalu | 22.04.2013 um 13:36

Habe mal ein Frage.
Ist es denn möglich über die APP sich in einer Website ein zu loggen?

Ich habe auf der main.xml ein Button der auf ein neues Layout zugreift wo der Webview angezeigt wird.
Dort werde ich (wie halt am PC) nach Passwort und Name gefragt.
Jetzt wollte ich es aber so gestallten, bevor ich auf den Webview komme auf ein Layout mit Passwort und Name zugreife und bei erfolgreicher Prüfung auch gleich angemeldet bin und nicht beim drehen des Handys mich neu einloggen müsste.

Wie ich das mit den Layouts mache ist ja kein Ding, aber wie bekomme ich es hin das er die abfrage macht und mich gleich einloggt?

Kennt dazu jemand ein schönes Tutorial oder kann mir jemand ein example geben wo ich seh wie es aufgebaut ist?

AntwortenPositivNegativDatumStimmen
00 Stimmen

Wie wäre es zum Beispiel die Logindaten über die URL zu übergeben, im WebView also statt

example.com/login

beispielsweise die Seite

example.com/login?name=name&id=12345

aufzurufen. Auf der Login-Seite kann man die Werte der Variablen dann mit GET empfangen. Wäre dann nur eine Frage der Sicherheit, damit die Login-Daten nicht in falsche Hände geraten.

Eine andere Idee wäre ein Cookie, in dem eine ID gespeichert ist und dann den Nutzer nach einmaligem Login immer wieder neu einloggt.

Hilft das weiter? Kommt ja auch darauf an, wofür die App genutzt werden soll.
22.04.2013 um 19:21

AntwortenPositiv Negativ
00 Stimmen

Also die App wird ja nicht auf dem Markt kommen.

Es wird nur eine App, die für ein Onlinegame gestalltet wird.

Wir haben da 2 Webseiten und dafür würde ich die halt nehmen.

Also das mit Cookie habe ich mal gelesen aber da weiß ich nicht wie ich das einbauen sollte.
25.04.2013 um 22:47

AntwortenPositiv Negativ
00 Stimmen

Grob gesagt kann man das mit dem Cookie zum Beispiel so machen:

Jeder Nutzer erhält eine eindeutige Kennung (ID). Diese wird im Cookie und auf dem Server in der Datenbank abgespeichert. Beim Aufruf der Website fragt der Server den Cookie ab und kann damit den Nutzer erkennen und dementsprechende Inhalte liefern.

Wichtig: Wenn es sich nicht gerade um ein internes Projekt handelt sollte die ID hinreichend kompliziert sein, damit niemand manuell einen solchen Cookie erstellen kann, um den Login zu fälschen.

Also nicht einfach nur eine einstellige ID des Nutzers nehmen sondern zum Beispiel den Hash-Wert aus ID, Nutzer-Namen und einem Zufallswort zusammen. Da man die ID ja nicht replizieren sondern nur vergleichen muss, kann man auch einfach nur ein sehr langes Zufallswort aus Zahlen, Buchstaben und Sonderzeichen nehmen, das dann einfach beim ersten Login des Nutzers erstellt und gespeichert wird. 

Wenn der Nutzer sich von verschiedenen Systemen einloggt, kann man auch alle unterschiedlichen speichern oder den Nutzer dann neu einloggen lassen.

Hilft dir das zur Realisierung weiter, sonst könnte ich noch ein kleines Tutorial dazu schreiben, wenn ich etwas mehr Zeit habe.
26.04.2013 um 02:36

Positiv Negativ
Antworten
00 Stimmen

Also das klingt jedenfalls einfacher als wenn ich das mit Request, HTTP, Form, Parameter irgendwie schreibe.
Es wäre zwar so etwas besser aber am anfang muss halt das mit cookies reichen^^
Und das mit der ID muss ich mal den Seitenadministrator fragen da ich nur für die App zuständig bin

EDIT:
Hat sich erledigt.
Die eine Seite hat keine Cookies, daher werde ich da immer wieder rausgeschmissen bei drehen des Handy`s.

Gibt es trotzdem eine Möglichkeit angemeldet zu bleiben?
26.04.2013 um 10:10

AntwortenPositiv Negativ
00 Stimmen

Wie wurde der Login denn dann realisiert, wenn nicht mit Session-Cookies? Ohne serverseitige Unterstützung wird es nämlich eh schwierig, da kann man fast nur noch die Login Daten per POST an die Seite senden, um so eine Eingabe der Daten zu simulieren.
27.04.2013 um 15:46

Positiv Negativ
Antworten
00 Stimmen

Mit diesem Code:

@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);

// Save the state of the WebView
webView.saveState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);

// Restore the state of the WebView
webView.restoreState(savedInstanceState);
}

Aber wie mache ich das per POST?
Davon habe ich gar kein plan. Aber ich denke das bleibt meine einzige Möglichkeit eine Login page zu erstellen und sich damit anzumelden.
01.05.2013 um 17:23

AntwortenPositiv Negativ
11 Stimme

Damit die Sache etwas übersichtlicher wird, habe ich mal ein Beispiel in einem neuen Thema geöffnet:

Daten per POST an eine WebView senden

Das sollte für dich eigentlich funktionieren...
02.05.2013 um 10:35

Positiv Negativ
Antworten
00 Stimmen

Ich kann zwar mich einloggen lassen, aber wie sollen das andere können?

Es wird von mehreren Leuten benutzt.
Vllt auf die MySql Datenbank zugreifen lassen für alle?
05.05.2013 um 10:15

AntwortenPositiv Negativ
00 Stimmen

Naja, die Login Daten müssten natürlich für jede Person individuell gespeichert sein, sonst funktioniert das ganze ja nicht. Die App muss die Login-Daten schon kennen.

Wie meinst du das mit der MySQL Datenbank? Einen vollen Zugriff für alle wäre unter Sicherheitsgesichtspunkten natürlich keine gute Idee.

Vielleicht müsstest du nochmal genau erklären, wie dein Projekt aussieht und was schon geht und was nicht, damit wir dir besser helfen können.
05.05.2013 um 14:48

Positiv Negativ
Antworten
00 Stimmen

Also das ich mich auslogge wenn ich das Handy drehe habe ich gefixt.
Eine Webview Navigation habe ich nun auch dank eurer Hilfe.

Was jetzt noch gut wäre, das ich ein layout erstellen mit edittext für Benutzernamen und Passwort und dem loginButton der bei erfolgreicher Prüfung dich gleich einloggt.
Die APP ist für mehr Leute gedacht.
05.05.2013 um 23:29

AntwortenPositiv Negativ
00 Stimmen

Wenn du Eclipse oder eine andere ähnliche IDE nutzt, sollte das ja eigentlich kein Problem sein. Einfach die Buttons auf die Oberfläche ziehen und fertig ;)
05.05.2013 um 23:47

Positiv Negativ
Antworten
00 Stimmen

Das layout ist kein Problem.
Eher die activity die benötigt wird.
Also wenn ich auf den button login klick, er mich dann eingeloggt auf den webview bringt.
Irgendwie muss ja ja der button schauen, ob es das Passwort und der Benutzer auf der Website gibt.
06.05.2013 um 12:43

AntwortenPositiv Negativ
00 Stimmen

Das kann aber nur der Server machen, deine App kann das nicht wissen.

Das was der Nutzer eingibt muss an den Server gesendet werden und da findet die Überprüfung statt. Sonst müssten ja alle Passwörter und Namen auch in der App hinterlegt sein.
06.05.2013 um 13:34

Positiv Negativ
Antworten
00 Stimmen

Aber gibt es eine möglichkeit mit so einem Layout z.B http://4.bp.blogspot.com/-ixMNP__Oaqc/ T6IEiWNZwSI/ AAAAAAAAAgE/ tzV_fRh3Fzs/ s1600/login-4.png sich einzuloggen und dann im Webview schon eingeloggt zu sein ohne die POST?
06.05.2013 um 22:59

AntwortenPositiv Negativ
00 Stimmen

Haben wir dir nicht genau das beantwortet einige Antworten über dieser? Wie du das Layout machst hat ja nichts mit der Technik zu tun, du kannst jede Technik mit einem beliebigen Layout kombinieren.
07.05.2013 um 00:27

Positiv Negativ
Antworten
00 Stimmen

Und mir fehlt die Technik nicht das Layout.
Das Layout habe ich ja.
Ich weis nicht mit welcher bzw wie ich die activity dazu schreibe.
07.05.2013 um 14:40

AntwortenPositiv Negativ
00 Stimmen

Die sollte sich doch auch nicht von den anderen unterscheiden, die du bisher hast oder?! Stell am besten ne neue Frage in der du genau dein Problem beschreibst, sonst wissen wir nicht, wie und wobei wir dir helfen können... ;)
07.05.2013 um 18:09

Positiv Negativ
Antworten
Antworten

Ähnliche Themen

Android Splash Screen Tutorial

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.