HybridAuth. Безопасный протокол с Yandex профилем
Добрый вечер.
Пытаюсь настроить авторизацию на сайте при помощи HybridAuth. В целом, все получилось, но есть проблема с авторизацией (даже просто с наличием возможности авторизации) через Яндекс.
В консоли Chrome выдается два предупреждения, одно постоянное, другое при полной перезагрузке странички.
Постоянная:
В файлах HybridAuth в папке провайдеров уже изменил строку
Пытаюсь настроить авторизацию на сайте при помощи HybridAuth. В целом, все получилось, но есть проблема с авторизацией (даже просто с наличием возможности авторизации) через Яндекс.
В консоли Chrome выдается два предупреждения, одно постоянное, другое при полной перезагрузке странички.
Постоянная:
Mixed Content: The page at 'https://mariadolgopolova.ru/proverka-stranicy-s-kommentariyami-i-avtorizaciej.html' was loaded over HTTPS, but requested an insecure image 'http://upics.yandex.net/82115369/normal'. This content should also be served over HTTPS.
Только при перезагрзуке:Mixed Content: The page at 'https://mariadolgopolova.ru/proverka-stranicy-s-kommentariyami-i-avtorizaciej.html' was loaded over HTTPS, but requested an insecure image 'http://avatars.mds.yandex.net/get-yapic/0/0-0/islands-retina-50'. This content should also be served over HTTPS.
Смысл ошибки я понимаю, но как исправить понять не могу.В файлах HybridAuth в папке провайдеров уже изменил строку
$this->user->profile->photoURL = 'http://upics.yandex.net/'. $this->user->profile->identifier .'/normal';
На адрес с https. Кеш чистил, но ошибка не исчезает (даже первая). Может быть кто-то сможет подсказать, что с этим можно сделать? Может быть где-то есть обращение к способу подключения… Вижу по сайту modx.pro, что безопасный протокол и авторизация через Яндекс могут сосуществовать. Комментарии: 7
Проблему решил. В чанке «tpl.HybridAuth.logout», вместо:
<img src="[[+gravatar]]?s=75" alt="[[+username]]" title="[[+fullname]]" class="ha-avatar"/>
Написал:<img src="[[+gravatar:!empty=`https://мой-сайт/путь-к-картинке-заглушке`]]" alt="[[+username]]" title="[[+fullname]]" class="hybridauth_logout__icon"/>
Проблема решена не была полностью (что, конечно же, логично).
Я задал вопрос яндексу, они мне ответили:
Шикарный ответ, конечно :)
Вопрос такой: почему изменение протокола в файле Yandex.php в папке провайдеров не подействовало на ссылку?
Я задал вопрос яндексу, они мне ответили:
Спасибо! Все проверили. Дело действительно в http/https, и, чтобы все работало, нужно, чтобы разработчики HybridAuth исправили upics.yandex.net/82115369/normal на upics.yandex.net/82115369/normal .
Шикарный ответ, конечно :)
Вопрос такой: почему изменение протокола в файле Yandex.php в папке провайдеров не подействовало на ссылку?
Я конечно понимаю, что времени уже прошло много — 3 года, нго считаю нужным оставить эту инфу здесь
Ссыль на параметры аватара на яндексе
/core/components/hybridauth/providers/Yandex.php
меняем
Ссыль на параметры аватара на яндексе
/core/components/hybridauth/providers/Yandex.php
меняем
$userProfile->photoURL = 'http://upics.yandex.net/' . $userProfile->identifier . '/normal';
на$userProfile->photoURL = 'https://avatars.yandex.net/get-yapic/' . $userProfile->identifier . '/islands-retina-50';
Полезнее создать issue на github.
Сделаю, обязательно. Просто торопился сдать проект. И не до этого было.
Гуглил быстро и пока вкладку не закрыл запостил
Гуглил быстро и пока вкладку не закрыл запостил
В любом случае спасибо за ответ :) С новыми работами будет проще.
Не совсем точно. Подставлять нужно идентификатор не пользователя, а картинки.
Поэтому менять нужно на:
Поэтому менять нужно на:
$userProfile->photoURL = 'https://avatars.yandex.net/get-yapic/' . $data->get('default_avatar_id') . '/islands-200';
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.