Nicht eingeloggt bei Verwendung von http

Ich verschiebe meine WordPress-Multisite von einem Server zum anderen und habe entschieden, für das neue Setup einen WAMP (Uniserver Zero) zu verwenden.

Ich habe ein Problem, das im alten Setup nicht auftritt, nur das neue:

In der Kopfzeile meines Themas habe ich einen Login-Link oder ‘Willkommen, [Name mit Link zum Profil] [Logout-Link]’, wenn der Benutzer sich bereits angemeldet hat.

Wenn ich mich bei WordPress anmelde, werde ich auf die Homepage gebracht und merke, dass in der Kopfzeile immer noch ‘login’ steht und nicht mein Name und meine Profil- / Logout-Links. Wenn ich die URL einer Seite auf https anstelle von http ändere, werden die Namen und Profile / Logout-Links angezeigt. Aus irgendeinem Grund glaubt WordPress nicht, dass ich eingeloggt bin, wenn ich in http schaue, nur wenn https.

Ich bin nicht sicher, ob das etwas in meinem WordPress-Setup oder Apache oder PHP ist.

Hier sind ein paar Details von phpinfo, die helfen könnten:

  • Serverwurzel C: / UniServerZ / core / apache2
  • DOCUMENT_ROOT C: / UniServerZ / www / wordpress
  • US_ROOTF_SSL C: / UniServerZ / www
  • US_ROOTF_WWW C: / UniServerZ / www

EDIT Es sieht so aus, als ob dies ein Problem seit WordPress 4.0 ist. Das alte Setup war 3.8 https://wordpress.org/support/topic/http-and-https-differences-for-function-is_user_logged_in-in-wordpress-40

Solutions Collecting From Web of "Nicht eingeloggt bei Verwendung von http"

Benutzer, die sich über HTTPS angemeldet haben, sollten immer über https Inhalte erhalten, da es sonst keinen Sinn macht, das Login-Formular https zu verwenden. Mit http kann jeder den Cookie abfangen und benutzen, um zum Benutzerkonto zu gelangen, ohne den Benutzer und das Passwort zu kennen.

Die Frage hier ist wahrscheinlich, warum einem angemeldeten Benutzer überhaupt ein http-Link angeboten wird. Es könnte ein Umweg sein, zu erkennen, wann der LOGGED_IN_COOKIE Cookie gesetzt ist, und er sollte sowohl auf http als auch auf https verfügbar sein, und wenn er auf https umgeleitet wird.

Klarstellung : Sie müssen nicht alles über https für eingeloggte Benutzer bereitstellen, es ist nur ein einfacherer Weg, IMO zu folgen. Der härtere Ansatz besteht darin, nur auf Seiten zu loggen, auf denen Sie dem Benutzer tatsächlich vertrauliche Informationen anzeigen, aber wenn Ihr Benutzer die Admin-Leiste deaktiviert hat, können Sie die Seite als http anbieten, aber wenn es aktiviert ist, müssen Sie https gehen.

Wenn Sie nur den Anzeigenamen des Benutzers anzeigen und es sich um öffentliche Informationen handelt, können Sie die Benutzerinformationen aus dem Anmeldenamen ableiten, der im Cookie LOGGED_IN_COOKIE enthalten ist. Für die tatsächliche Authentifizierung müssen Sie jedoch https LOGGED_IN_COOKIE .