CakePHP Auth Bileşeni "login"

2 Cevap php

Ben uzaktan bir WordPress sitede bir AJAX çağrısı ile bir kullanıcı oturum açmak için kullanılan benim CakePHP proje users_controller.php bir yöntem var. Firefox sayesinde çağrıldığında yöntem sorunsuz çalışıyor ama AJAX yoluyla veya doğrudan IE8 veya Safari tarayıcı ya onu aramak istediğinizde, sadece her şeyi olduğu gibi) yöntemi true döndürür (Auth-> login oturum olmaz ince, ama o Herhangi fikirlerin içeri giriş yok?

function remoteLogin($key)
{
  # this method should only be called via AJAX
  $this->layout = 'ajax';

  $matching_key = '***';

  if($key == $matching_key)
  {
    # auto-login service account
    $data['User']['username'] = '***';
    $data['User']['password'] = $this->Auth->password('***');

    $this->Auth->login($data);
  }
}

Note: Şimdi bu yöntem ya da Opera çalışmıyor doğruladı. Ben meşru kafam karıştı.

2 Cevap

Eğer çerezleri kontrol ve beklediğiniz gibi onlar geçti ediliyor emin olmak isteyebilirsiniz. Fiddler bu AJAX sorunları anlamaya geçtikçe http trafiği görmek için yararlıdır.

Are www.domain.com and domain.com going to the same place? If so this may be related to a CakePHP / IE issue I ran accross.

Herhangi bir etki alanı düzeyi çerezleri sil ve eğer o inşaat bakın.

IE herhangi bir etki alanı tanımlama subdomain çerezleri üzerinde precidence alacaktır. Hiç domain.com ve giden bir çerez almak Yani eğer daha sonra, sizin oturum giriş sıfırlama www.domain.com gidip gün boyu ikis ancak IE www.domain.com çerezleri görmezden ve orijinal kullanmaya devam edecek domain.com on. Ben bu aşmanın www.domain.com olarak siteye erişim bile domain.com için çerez kapsamını zorlamak / set izin verir Cake eski bir sürümü için bir yama yazdı.

IE8 hakkında şimdi değil, ama Safari hatta aynı üst etki altında "kardeşler" arasındaki, cross-domain ajax bloke etmez. ÖRN. Sen var app.example.com helppages.example.com gelen ajax kullanarak bir div yükleyemez. Çerezleri unut, ben ajax kullanarak yüklenen sadece düz html konuşuyorum.