2017-05-19 8 views
0

Die Sitzung wird nicht gespeichert und läuft ab, wenn die App oder der Tab über Mobile Safari oder Chrome geschlossen wird. Auf der anderen Seite funktioniert es gut auf Desktop-Browsern.Die Rails-Sitzung läuft ab, wenn die App in iOS geschlossen wird. Chrome und Safari

Unten ist die einzige Sitzungskonfiguration.

config/initializers/session_store.rb

# Be sure to restart your server when you modify this file. 

Rails.application.config.session_store :cookie_store, { 
    key: '_myapp_session', 
    domain: :all 
} 
  • Rubin: v2.3.0
  • Rails v4.2.8

Vielen Dank für Ihre Hilfe.

Antwort

0

ein paar Dinge versuchen:

  • Sie sicher, dass Sie nicht „Private-Browsing-Modus“ eingestellt auf Ihren mobilen Geräten

  • Stellen Sie sicher, Ihr Schlüssel ist etwas Einzigartiges haben und ist nicht wörtlich '_myapp_session'

  • Stellen Sie sicher, secret_token/secret_key_base (je nach Schienen-Version) auf einen eindeutigen Wert gesetzt

  • Experimentieren Sie mit den genauen Domänen Angabe Sie wollen statt mit: alle (. Das ist etwas, nur ich weiß nicht, zu testen, ob mobile Browser eine schlechte Wechselwirkung in diesem Fall dazu führen würde)

+0

Vielen Dank für die Antwort. Ich werde den letzten Versuch versuchen. –

0

Sind Sie nicht Verwenden von eigenständigen Anwendungen (Webapp, aber mit einem Home-Bildschirm-Symbol)? Standalone-Apps behalten nicht einmal persistente Cookies bei. Wenn Sie also eine eigenständige App schließen, gehen alle Sitzungsinformationen verloren.

Auch Sitzungscookies sollten nicht persistent sein (sollte kein Ablaufdatum haben, und standardmäßig nicht). Ein nicht persistenter Cookie soll entfernt werden, wenn der Browser (oder Tab) geschlossen wird. In der Tat funktioniert iOS richtig.

Ich denke, wenn Sie es persistent machen wollen, können Sie expire_after: 14.days oder ähnliches hinzufügen. Sei dir aber bewusst, was das bedeutet! Es wird als ein Sicherheitsrisiko betrachtet, da solche Cookies auf die Festplatte geschrieben werden, das erneute Öffnen eines Browsers den Zugriff auf eine Anwendung gewährt, wenn sich der Benutzer nicht wirklich abgemeldet hat, usw.

Verwandte Themen