Form von extern per App ansteuern
am 14.07.2017 - 21:07 Uhr in
Hallo zusammen,
da wir an einem problem langsam verzweifeln, bitte ich um eure Mithilfe oder Tipps:
EIne Form soll in einer App ausgefüllt und abgesendet werden. Hierfür verwenden wir in der App Webviews. Hierfür loggt sich der User mit Hilfe von Tokens im Hintergrund ein. Das Form wird auch ganz normal dagestellt. Die Tokenübertragung klappt.
Unser Problem:
Sobald der User das Formular absendet, wird er ausgeloggt. Da der Nutzer von der einen Seite zur anderen per Form weitergeht (und vermutlich noch ein redirect von Drupal erfolgt) können wir mit der App kein Token mehr senden. Wir gehen also davon aus, dass das Form ein Token mitsendet bzw. dass der User per Session-Cookie eingeloggt bleibt.
Das klappt aber nicht, da der Nutzer ausgeloggt wird, wenn die Ergebnisseite nach dem Speichern/Abesenden der Form angezeigt wird.
Ist das normal?
Hat jemand Tipps das Problem zu lösen?
Das ist vor allem dann schlecht, wenn der Nutzer über einen Warenkorb geht und weiter bestellen muss :(
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi, ja, das geht mit
am 15.07.2017 - 09:10 Uhr
Hi,
ja, das geht mit drupalgap
Du kannst Du die App über cordova sogar für diverse Plattformen compilieren.
http://drupalgap.org/
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Frage gelesen ?
am 15.07.2017 - 20:05 Uhr
Das ist in keiner Weise eine Antwort auf die Frage!
Es geht um eine bereits existierende native App die auf eine Drupalseite zugreift. Durch ein Redirect von der Druppalseite wird die Logininformation, warum auch immer, nicht weitergegeben. Ein Lösung mit Cordova oder ähnliche nichtnative Webframeworks ist keine Option.
Die Frage ist warum die Logininformation nicht bestehen bleibt wenn ein Redirect durch die Drupalseite durchgeführt wird.
Eventuell in dieser Richtung
am 15.07.2017 - 20:20 Uhr
Eventuell in dieser Richtung suchen? https://www.drupal.org/project/session_api
Grüße Jenna
Doch, ich habe Deine Frage
am 15.07.2017 - 21:59 Uhr
Doch, ich habe Deine Frage schon richtig gelesen,
Du hast aber offenbar drupalgap nicht angesehen,
denn das erledigt Dir genau die Sache mit dem Session Login und CSRF Token.
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Drupalgap
am 15.07.2017 - 22:23 Uhr
Und wie soll das in eine bestehende native App ? Drupalgap basiert auf Phonegap das wiederum ist Cordova was ein Webframework ist welches aufgebockt auf den jeweiligen nativen Betriebsystemfunktionen agiert. Das ist keine Lösung hier. Denn das Webview muss für die o.g. Anforderung reichen. Wir können nicht ein zweites Framework innerhalb der bestehenden nativen App verwenden. Das eignet sich nur wenn man ein neues Projekt beginnt was nur mit Drupal arbeitet und nicht nativ arbeiten soll. (Und wenn man wirklich Lust auf die ganzen Kinderkrankheiten von Cordova hat und der Kunde keinen Wert auf Geschwindigkeit legt)
@Jenna: Danke! Eine Idee
am 15.07.2017 - 22:26 Uhr
@Jenna: Danke!
Eine Idee warum die Sessiondaten beim Redirect verloren gehen. Wenn der Nutzer auf der Form verbleibt ist er eingeloggt. Wenn das Modul auf die Confirmation Seite redirected verliert sie die Sessiondaten. Aber nur im Webview, im normalen Browser bleibt der Nutzer eingeloggt (was ich nicht verstehe außer die Sessiondaten werden noch wo anders - bsp.: als Cookie - abgelegt)
Zitat: Und wie soll das in
am 15.07.2017 - 22:50 Uhr
Und wie soll das in eine bestehende native App ? Drupalgap basiert auf Phonegap das wiederum ist Cordova was ein Webframework ist welches aufgebockt auf den jeweiligen nativen Betriebsystemfunktionen agiert. Das ist keine Lösung hier. Denn das Webview muss für die o.g. Anforderung reichen. Wir können nicht ein zweites Framework innerhalb der bestehenden nativen App verwenden. Das eignet sich nur wenn man ein neues Projekt beginnt was nur mit Drupal arbeitet und nicht nativ arbeiten soll. (Und wenn man wirklich Lust auf die ganzen Kinderkrankheiten von Cordova hat und der Kunde keinen Wert auf Geschwindigkeit legt)
Naja, bei mir hat das mit drupalgap ziemlich out of the box funktioniert, wenn Du das selbst machen möchtest, setze Dich schon mal mit cors und csrf tokens auseinander!
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
@Hype: Danke für deine
am 16.07.2017 - 11:35 Uhr
@Hype: Danke für deine Mithilfe! Das Übertragen der Tokens funktioniert ja, da der Nutzer nur personalisierte Daten angezeigt bekommt, wenn er eingeloggt ist.
@Jenna: auch dir danke!
Entscheidend ist aber, dass der User in einer Webview nach der 1. Seite auf eine 2. und 3 Seite gelangt (z.B. in das Shopsystem von Drupal Commerce oder bei Entityforms mit sessionid). Genau auf der 2. und 3. Seite geht aber das Token verloren, weil die Form das nicht überträgt. Die 1. Seite klappt ja (dafür brauchen wir kein Drupalgap)
Daher bleibt die zentrale Frage: Wie arbeitet Drupal bei der Useridentifiziereung? Nur Sessionid und Tokens sind es wohl nicht, da jene bei der Nutzung eines redirects (das von einer .htaccess erzeugt wird) weitergeleitet wird.
Im PC-Browser bleibt der Nutzer eingeloggt.
ABER: im Webview (eine Art Browser in der App) wird der Nutzer ausgeloggt. <-- Genau das können wir uns nicht erklären.
Hi.da Du ein WebView
am 16.07.2017 - 12:16 Uhr
Hi.
da Du ein WebView erwähnst, gehe ich davon aus Du meinst eine Android App.
Nach Deiner Beschreibung denke ich, dass Du Dich um das Sessions/Cookies in dieser
auch selbst kümmern musst. (Im Gegensatz zu einem richtigen Browser)
https://stackoverflow.com/questions/11224454/android-share-session-betwe...
In solchen Apps werden Daten eher im local storage der nativen Applikation gespeichert und nicht im cache eines Browsers
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
In diesem Beitrag, Bild 2,
am 16.07.2017 - 13:22 Uhr
In diesem Beitrag, Bild 2, Add a new endpoint... gibt es eine Checkbox für Session Auth...
https://www.etondigital.com/how-to-develop-a-hybrid-app/
Habt ihr so ein Modul, in der Art, im Einsatz?
Bin überhaupt kein App Experte, aber es hört sich danach an, als wenn eine direkte Mitteilung von Drupal an diese Webviews fehlt.
Und den Redirect in der .htaccess, kann das für eine Webview eventuell Probleme machen, Alternative wäre eventuell Rules dafür zu nutzen, je nachdem um was für einen redirect es sich handelt.
Grüße Jenna