Puncte:0

Pagina utilizator greșită încărcată după user_login_finalize()/user_logout()

drapel de

Am un modul personalizat de conectare terță parte care apelează user_login_finalize() după autentificare și user_logout() la deconectare. Ambele funcționalități funcționează, cu excepția cazului în care utilizatorul se conectează/deconecta din calea /user în Drupal, pagina încarcă versiunea paginii /user care ar fi trebuit să fie redată înainte de autentificare/deconectare. Deci, atunci când vă conectați, pagina arată avertismentul neautorizat care a fost acolo la început, până când pagina este reîncărcată. La deconectare, pagina afișează informațiile despre profilul utilizatorului care erau acolo când utilizatorul a fost conectat.

Acest cod rulează într-un abonat de eveniment pentru KernelEvents::REQUEST (autentificarea organizației mele funcționează astfel încât starea dacă un utilizator este autentificat se poate schimba în afara site-ului meu Drupal în orice moment și trebuie verificată înainte de a încărca conținutul).

Nu sunt sigur dacă problema are legătură cu redirecționarea autentificărilor de la terți sau cu memoria cache a Drupal, dar mai există ceva care trebuie șters sau resetat după utilizarea acestor funcții? Le-am folosit în mod intenționat pentru a evita să scriu cod duplicat din ceea ce este deja în Drupal.

Jaypan avatar
drapel de
Sună ca o problemă de cache. Mai exact memoria cache a paginii anonime. Încercați să dezactivați modulul respectiv și vedeți dacă problema dispare. Dacă se întâmplă, poate fi necesar să configurați anumite contexte de cache sau chiar să dezactivați stocarea în cache pentru pagina respectivă.
4uk4 avatar
drapel cn
Unde ai pus acest cod? În mod normal, acesta rulează într-un controler sau un handler de trimitere care returnează o redirecționare pentru a construi pagina corectă pentru utilizatorul nou conectat sau deconectat.
apaderno avatar
drapel us
Când utilizatorii se deconectează, sunt încă redirecționați către /user sau URL-ul care apare în bara de adrese a browserului este diferit, dar pagina redată este pagina de profil de utilizator? În primul caz, redirecționarea este cea care provoacă acest lucru; în al doilea caz, este o problemă cu memoria cache a paginii.
Anton avatar
drapel de
Am actualizat descrierea pentru a răspunde comentariilor/întrebărilor.Pe scurt, acesta este un modul personalizat și apelez codul într-un abonat de eveniment pentru KernelEvents::REQUEST. Aceasta este o problemă de stocare în cache a paginii /user, din câte îmi pot da seama. Există vreo modalitate de a dezactiva memoria cache a utilizatorului anonim doar pentru această pagină/rută?
Puncte:1
drapel cn

Acest cod rulează într-un abonat la eveniment pentru KernelEvents::REQUEST (my autentificarea organizației funcționează într-un mod în care statutul de dacă un utilizator este autentificat se poate schimba în afara site-ului meu Drupal la oricând și trebuie verificat înainte de încărcarea conținutului).

Dacă starea de autentificare s-a schimbat, atunci setați un răspuns de redirecționare pentru a crea noua pagină după ce ați creat o nouă sesiune sau ați distrus sesiunea existentă prin intermediul funcțiilor modulului utilizator pe care le-ați menționat:

$răspuns = new RedirectResponse(Url::fromRoute('<current>')->toString());
$event->setResponse($response);

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.