Neu JTLShop 5: OPC bei Verwendung von 2FA nicht im Frontend sichtbar

Clearcanvas

Aktives Mitglied
10. Juni 2015
9
0
Wenn für das Backend die 2FA aktiviert ist, dann wird im Frontend der OPC nicht angezeigt. Kleine Recherche hat gezeigt, dass die Session-Variable `$_SESSION['loggedAsAdmin']` nicht im Frontend gesetzt ist.

Ich denke das Problem steht in Zusammenhang mit Issue SHOP-4854 (https://issues.jtl-software.de/issues/SHOP-4854).

Schnelle Lösung ist die 2FA zu deaktivieren.

Kann das noch jemand bestätigen? (Verwendete Shop Version 5.0.1)
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Nein, das kann ich nicht bestätigen. Wenn das OPC-Menü im Frontend fehlt, dann ruf nach erfolgreichem Login im Backend das Frontend über einen Klick auf das Avatar-Icon (ganz rechts oben) und dann mit dem Link "Zum Onlineshop" auf. Spätestens dann sollte das Icon angezeigt werden.
Mit dem verlinkten Ticket hat das eher nichts zu tun.
 

Clearcanvas

Aktives Mitglied
10. Juni 2015
9
0
Vielen Dank für den Tipp mit dem Profil-Link.

Ich habe jetzt nochmal etwas genauer geguckt. Folgender Ablauf um es zu reproduzieren (Frischer Browser, alle Cookies + Session löschen, 2FA aktiviert):
1. Aufruf Frontend
2. Login-Screen Admin
3. 2FA-Screen Admin
4. Admin-Eingeloggt
5. Aufruf Frontend (nicht über den Link im Profil)

--> OPC ist nicht sichtbar

Das passiert mit der Session:
1. Aufruf Frontend:
$_COOKIE['JTLSHOP'] wird gesetzt.

2. Login-Screen Admin:
$loggedIn ist false
$_COOKIE['JTLSHOP'] ist gesetzt und $_SESSION['frontendUpToDate'] ist leer.
Die IF-Bedingung (/admin/includes/admininclude.php Zeile 79) greift also und von der Frontend-Session wird $_SESSION['loggedAsAdmin'] auf false gesetzt.

3. 2FA-Screen Admin:
$loggedIn ist false
$_COOKIE['JTLSHOP'] und $_SESSION['frontendUpToDate'] ist gesetzt.
IF-Bedingung wird nicht erfüllt.

4. Admin-Eingeloggt:
$loggedIn ist false
$_COOKIE['JTLSHOP'] ist gesetzt und $_SESSION['frontendUpToDate'] ist leer.
Die IF-Bedingung (/admin/includes/admininclude.php Zeile 79) greift also und von der Frontend-Session wird $_SESSION['loggedAsAdmin'] auf false gesetzt.


Das Problem ist, dass $loggedIn noch false gesetzt ist wenn die Session-Daten gesetzt werden.
 

Ähnliche Themen