Session Daten aus JSON Abfrage übergeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Macoun 2019 - Frühbucherrabatt bis 26.7.2019

  • Session Daten aus JSON Abfrage übergeben

    Hallo zusammen,

    ich habe folgendes Problem:

    ich habe ein LoginView erstellt um dort die Daten zu Validieren und später für den Login zu nutzen. Die Gegenstelle ist eine Webseite mit CakePHP(Ich weiss nicht ob es relevant ist), und dort nehme ich die per "POST" geschickten Daten entgegen und gebe die Antwort per JSON zurück. Das funktioniert auch alles einwandfrei. Nur benutze ich später die gespeicherten/validierten Daten um auf die Login Funktion auf der Webseite zuzugreifen, dass funktioniert auch noch, dann sobald ich eingeloggt bin öffne ich einen webview und der soll dann die Login Daten weiter verwenden, tut er aber logischerweise nicht, weil die Session nicht dort aktiv ist, nun die Frage, was habe ich für Möglichkeiten? Kann man die Werte irgendwie elegant übergeben oder irgendwas anderes?


    Vielen Dank schonmal im voraus ich hoffe ich habe es wenigstens etwas verständlich erklärt ;)
  • Mac & i Test Abo
  • Ich habe keine Ahnung, wie dein Server die Sessions handelt, aber wenn ich dich richtig verstehe, kannst du die Session Credentials in einen NSURLRequest packen, den du dann per loadRequest: an den Webview gibst.

    Was anderes: Ich frage mich immer, wieso man sowas überhaupt macht. Entweder hat man eine webbasierte Anwendung, dafür ist der beste Client ein Webbrowser (oder sollte es zumindest sein). Ober man hat eine native Anwendung, dafür sollte dann das Backend eine entsprechende API haben. Was bringt es, sowas kreuz und quer zusammenzudengeln (also erst ein nativer Login, um dann doch wieder in einem Webview zu landen)? Das kann doch über kurz oder lang nur Ärger machen - worst of both worlds. Ist nur meine Meinung - falls es für sowas einen guten Grund gibt, lerne ich gerne dazu.
    Multigrad - 360°-Produktfotografie für den Mac
  • mattik schrieb:

    Ich habe keine Ahnung, wie dein Server die Sessions handelt, aber wenn ich dich richtig verstehe, kannst du die Session Credentials in einen NSURLRequest packen, den du dann per loadRequest: an den Webview gibst.

    Was anderes: Ich frage mich immer, wieso man sowas überhaupt macht. Entweder hat man eine webbasierte Anwendung, dafür ist der beste Client ein Webbrowser (oder sollte es zumindest sein). Ober man hat eine native Anwendung, dafür sollte dann das Backend eine entsprechende API haben. Was bringt es, sowas kreuz und quer zusammenzudengeln (also erst ein nativer Login, um dann doch wieder in einem Webview zu landen)? Das kann doch über kurz oder lang nur Ärger machen - worst of both worlds. Ist nur meine Meinung - falls es für sowas einen guten Grund gibt, lerne ich gerne dazu.


    Bin ich voll bei Dir. Aber es ist halt einfacher als eine komplett API bzw einen Webservice zu schreiben. Da wird dann auch gerne mal sowas gemacht wie das HTML geparst um an Daten zu kommen etc. Sehr abenteuerliche Konzepte gibt es da.

    Aber Zeit kost halt Geld. Und Zeit von guten Entwicklern kostet viel Geld und Geld ausgeben will keiner ;)

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    mattik schrieb:

    Ich habe keine Ahnung, wie dein Server die Sessions handelt, aber wenn ich dich richtig verstehe, kannst du die Session Credentials in einen NSURLRequest packen, den du dann per loadRequest: an den Webview gibst.

    Was anderes: Ich frage mich immer, wieso man sowas überhaupt macht. Entweder hat man eine webbasierte Anwendung, dafür ist der beste Client ein Webbrowser (oder sollte es zumindest sein). Ober man hat eine native Anwendung, dafür sollte dann das Backend eine entsprechende API haben. Was bringt es, sowas kreuz und quer zusammenzudengeln (also erst ein nativer Login, um dann doch wieder in einem Webview zu landen)? Das kann doch über kurz oder lang nur Ärger machen - worst of both worlds. Ist nur meine Meinung - falls es für sowas einen guten Grund gibt, lerne ich gerne dazu.


    Bin ich voll bei Dir. Aber es ist halt einfacher als eine komplett API bzw einen Webservice zu schreiben. Da wird dann auch gerne mal sowas gemacht wie das HTML geparst um an Daten zu kommen etc. Sehr abenteuerliche Konzepte gibt es da.

    Aber Zeit kost halt Geld. Und Zeit von guten Entwicklern kostet viel Geld und Geld ausgeben will keiner ;)

    Gruß

    Claus



    Genau das! Ich mag es ehrlich gesagt auch nicht und hätte am liebsten alles als RICHTIGE app, aber die Seite ist sehr sehr komplex und da ist verdammt viel Logik drin das als App nochmal zu entwickeln und dann alles doppelt pflegen ist einfach zuviel Aufwand und kostet dann auch dementsprechend ;) das sauberste wäre natürlich die API aber die ist auch nicht wirklich schnell fertig und da muss dann auch wieder alles berücksichtigt werden und dann kann schnell aus einer Woche ein Monat werden.

    Und danke für die Antwort werde es mal probieren :D

    EDIT: und keine komplette Webbasierende Anwendung, wegen dem Autologin und ein paar Daten werden hinterlegt dann ist es ganz hilfreich und ob Apple da so eine "only" webview App zulassen wird?!
  • Wie mattik schon gesagt hat, ist das Entscheidende, wie die Webseite die Sessions verwaltet. In der Regel verwendet man dazu Cookies oder eine Session-Id. Letztere schreibt man als Parameter oder Pfad-Bestandteil in die URLs. Cookies verwaltet Cocoa über NSHTTPCookieStorage. Nach einem erfolgreichen Login musst Du die Cookies aus der Antwort auslesen und in diese Keksdose ;) einfügen.
    „Meine Komplikation hatte eine Komplikation.“