Ön uç form anahtarının üzerine yazılıyor


11

Şu anda form anahtarları bir şekilde üzerine yazılıyor ve yanlış form anahtarları görüntülüyor ön uç formları ile ilgili sorunlar yaşıyorum. Şu anda müşteri giriş formunda bu sorunu ayıklamaktayım.

Bu, formkey değerinin ne olduğunu görmek için ayarladığım login.phtml'deki kodun anlık görüntüsüdür.

  <?php
      $retrievedKey =  $block->getBlockHtml('formkey');
      echo $retrievedKey ;
      // i made a breakpoint and inspected $retrievedKey, it returned a html output <input> ... </input> with a form key value of, let's name it 'keyA'.
  ?>

Tamam şimdi kod yürütme devam sonra, başarıyla sayfa oluşturur.

Ve şimdi krom tarayıcımda form anahtarı gizli girişini incelemeye gidiyorum, ancak ' KeyA'dan tamamen farklı bir form anahtarı yazdırıyor . Bu yeni form anahtarına ' KeyB ' adını verelim .

Şimdi bir giriş yapıp formu gönderiyorum. Gönderilen isteği inceledim ve gerçekten de 'KeyB'i yansıtan bir değer anahtar değişkeni geçiyor.

' Doğrulama ' işlevine bazı kesme noktaları yerleştirdim

Magento \ Framework \ Data \ Formu \ formkey \ Validator


Bu benim karşılaştırma denetçim. Sağda, $ formKey ve $ a eşleşmelidir. Ancak, öyle değil.

 $formKey = $request->getParam('form_key', null); // outputs 'KeyB'
 $a = $this->_formKey->getFormKey(); // outputs 'KeyA'


Böylece, doğrulama başarısız olur ve beni bu yüzden hiç hata mesajı olmadan giriş sayfasına geri yönlendirir .

Dikkat edilmesi gerekenler:

  1. Bu davranış, yalnızca krom ve Microsoft EDGE oluşur.
  2. Firefox iyi çalışıyor, üzerine yazma yok
  3. Yazdırılan form anahtarı her yenilemede değişiyor gibi görünüyor. $ retrievedKey her seferinde yenilenmiyor

Denediğim şeyler:

  1. kurulum: yükseltme ve kurulum: statik içerik: dağıtma
  2. var / cache ve var / generation temizlendi
  3. temizlenmiş tarayıcı önbelleği ve gizli mod

Form anahtarının neden üzerine yazıldığını kafamda bulamıyorum?

Bunun neden olduğuna dair herhangi bir yardım veya ipucu harika olurdu. Okuduğunuz için teşekkürler

Güncelleme - Bazı hata ayıklama yaptım ve page-cache.js form anahtarı yeniden ayarlayarak soruna neden olduğunu düşündüm . Bunun nedeni, bir 'form_key' çerezi ayarlanmışsa, çerezlerimi kontrol ediyor olması, yeni bir form anahtarı oluşturup çerezlere kaydetmesidir. Sorun şu ki, çerezi kaydedemiyor, bu yüzden yeni form anahtarları oluşturmaya devam ediyor.

Güncelleme - Sorunu çözdüm. Bu, çerez alan adı sorunlarından kaynaklanmaktadır. Teşekkürler


Düzeltmeyi belgelediğiniz için çok teşekkürler. Aynı davranışı görerek sorunu ayıklamak için biraz zaman geçirdik - form anahtarı tekrar tekrar ön uçta oluşturulur
Paras Sood

1
Benim durumumda magento sistem önbelleğiydi, çünkü bir evreleme env'den taşındı. Mağaza -> Ayarlar -> Konfigürasyon -> Sistem -> Tam Sayfa Önbellek -> Önbellek Uygulaması: Yerleşik Önbellek olarak ayarlayın (verniğin açık olup olmadığından emin değilseniz).
Miguel Felipe Guillen Calo

Tam olarak aynı soruna sahip ve doğrulamada form anahtarlarına da bakıyordu. Bunun çerez alan adı sorunlarından kaynaklandığını söylediniz, bunu nasıl düzelttiğinizi paylaşabilir misiniz? Teşekkürler
Uzun MK Nguyễn

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.