@MarkLb

Как выставить HTTPS-протокол в виджете AuthChoice расширения AuthClient от Yii2?

Ситуация: Использую разрешение AuthClient, возникла проблема с виджетом вывода кнопок социальных сетей AuthChoice.

Проблема: AuthChoice формирует обратную ссылку для социальных сетей с HTTP-протоколом, а Facebook в рекомендательно-принудительном порядке требует HTTPS.

Для формирования URL виджет принимает параметр baseAuthUrl, но в нём можно задать относительный путь к нужному action в качестве массива. Далее эти данные попадают в Url::to() в качестве первого параметра. А вот второй параметр Url::to(), который как раз таки за протокол отвечает, не дают редактировать.

Как решить данную проблему? Возможно, упустил какой-то параметр?

UPD:

Копнул немного глубже. Проблема та же, но в другом месте - \yii\authclient\BaseOAuth::defaultReturnUrl.
Тут формируется returnURL, но также как и в виджете нет возможности задать протокол:
Код

kiss_15kb.1580220127.png


P.S. Если вручную отредактировать это в vendor'е, вставить вторым параметром createAbsoluteUrl() "https" - всё отрабатывает и авторизация проходит.
То есть, дело определенно не в Facebook.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
На ваш вопрос Александр ответил следующее:

BaseOAuth::defaultReturnUrl() doesn't specify protocol. It means return URL generated matches protocol used at the website. If your website is served via HTTP it doesn't make sense to set return URL to HTTPS.


Подробно можно прочитать тут

Полностью с ним согласен. Но если вам нужен такой костыль, то вот
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dpws
Генерируйте сами: baseAuthUrl = Url::to['controller/action', 'https']
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы