CakePHP Auth Компонент «Вход» Ошибка метода в IE8 + Safari - PullRequest
2 голосов
/ 09 июня 2009

У меня есть метод в users_controller.php моего проекта CakePHP, который используется для удаленного входа пользователя через AJAX-вызов на сайте WordPress. Метод работает безупречно при вызове через Firefox, но когда я пытаюсь вызвать его через AJAX или напрямую из браузера в IE8 или Safari, он просто не будет входить в систему. Метод Auth-> login () возвращает true, как будто все хорошо, но это не входит в систему. Есть идеи?

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);
  }
}

Примечание: Теперь я подтвердил, что этот метод также не работает в Opera. Я законно запутался.

Ответы [ 3 ]

0 голосов
/ 09 июля 2009

Не сейчас о IE8, но Safari блокирует междоменный ajax, даже между «братьями и сестрами» в одном верхнем домене НАПРИМЕР. App.example.com не может загрузить div с помощью ajax из helppages.example.com. Забудьте куки, я говорю просто HTML, загруженный с помощью AJAX.

0 голосов
/ 16 июля 2013
  • Я думаю, что проблема в вашем домене. Пример: IE или какой-либо браузер не работают, если ваш домен, например: abc_def.com, ...
  • Пожалуйста, проверьте свой домен и измените его как abcdef.com => все будет хорошо
0 голосов
/ 10 июня 2009

Возможно, вы захотите проверить свои куки и убедиться, что они передаются так, как вы ожидаете. Fiddler полезен для просмотра http-трафика по мере выяснения этих проблем AJAX.

www.domain.com и domain.com идут в одно и то же место? Если это так, то это может быть связано с проблемой CakePHP / IE, с которой я столкнулся.

Удалите все куки уровня домена и посмотрите, работает ли он.

В IE любые доменные куки будут иметь преимущество перед субдоменовыми куки. Поэтому, если вы когда-нибудь получите cookie-файл, идущий на domain.com, а затем перейдете на www.domain.com, вы сможете сбросить свой логин сеанса, выходить из системы весь день, но IE будет игнорировать куки-файлы www.domain.com и продолжать использовать исходный domain.com один. Я написал патч для старой версии Cake, который позволил бы вам установить / принудительно установить область действия cookie для domain.com, даже когда они обращаются к сайту по адресу www.domain.com, чтобы обойти это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...