eugenem 11 Опубликовано 30 января, 2020 Жалоба Share Опубликовано 30 января, 2020 Встала задача сделать авторизацию через Facebook и Google на вамшоп 1.71. Как делаю: 1. Выполнил два запроса - из патча 1.99.3 и из патча 1.99.7 2. В create_account.php перенес код из 1.99.3 в той части, который касается авторизации. 3. Добавил правки в админке, чтоб этим можно было управлять. 4. Переписал папку vendor и подключил в aplication_top.php 5. Добавил кнопки в шаблоне 6. Соответственно создал приложения на самих FB и Google. В результате авторизация через Гугл проходит, все отлично. Через фейсбук - нет. Стопорится на странице create_account, при этом сам фейсбук пишет, что вход выполнен. Где тут может быть затык? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 30 января, 2020 Жалоба Share Опубликовано 30 января, 2020 3 часа назад, eugenem сказал: Встала задача сделать авторизацию через Facebook и Google на вамшоп 1.71. Как делаю: 1. Выполнил два запроса - из патча 1.99.3 и из патча 1.99.7 2. В create_account.php перенес код из 1.99.3 в той части, который касается авторизации. 3. Добавил правки в админке, чтоб этим можно было управлять. 4. Переписал папку vendor и подключил в aplication_top.php 5. Добавил кнопки в шаблоне 6. Соответственно создал приложения на самих FB и Google. В результате авторизация через Гугл проходит, все отлично. Через фейсбук - нет. Стопорится на странице create_account, при этом сам фейсбук пишет, что вход выполнен. Где тут может быть затык? С facebook не возвращается на сайт?! SSL сертификат установлен на сайте?! По идее, код для входа через гугл, вконтакте, facebook одинаковый на 99% В коде наверное вряд ли дело, может на стороне facebook приложение неправильно настроено. Посмотрите в базе данных магазина, в таблице customers создаётся аккаунт или нет. Хотя, если нет возврата с facebook, то наверное не создаётся. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 30 января, 2020 Автор Жалоба Share Опубликовано 30 января, 2020 Вот как раз возврат на сайт есть как раз куда надо - на страницу создания аккаунта. И фейсбук говорит, что вход произошел. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 30 января, 2020 Жалоба Share Опубликовано 30 января, 2020 5 минут назад, eugenem сказал: Вот как раз возврат на сайт есть как раз куда надо - на страницу создания аккаунта. И фейсбук говорит, что вход произошел. Так если возвращается в vamshop, что-то пишет?! Пустую страницу или ещё что?! Вообще, весь код, что связан с авторизацией, в патчах находится. Там база данных обновлялась, таблица customers, база данных тоже обновлена была?! Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 30 января, 2020 Автор Жалоба Share Опубликовано 30 января, 2020 Базу пропатчил запросами из патчей 1.99.3 и 1.99.7. Но там же не касалось таблицы customers, только configuration_group и configuration. Я что-то упустил? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 30 января, 2020 Жалоба Share Опубликовано 30 января, 2020 1 час назад, eugenem сказал: Базу пропатчил запросами из патчей 1.99.3 и 1.99.7. Но там же не касалось таблицы customers, только configuration_group и configuration. Я что-то упустил? Ну да, правильно. Кстати, там в коде ошибка, может в этом дело. В /create_account.php у всех авторизация oAuth есть строка, 3 раза встречается: $homeUrl = FULL_BASE_URL.BASE; По идее, должно быть: $homeUrl = HTTP_SERVER.DIR_WS_CATALOG; Может в этом дело, попробуйте. Хотя нет, вряд ли в этом. Попробуйте раскомментировать строки: //echo var_dump($results); и //echo var_dump($userInfo); Там будет видно, по идее, что присылает facebook, если ошибка или ещё что, должно быть видно. Так а что в таблице customers, не создаётся покупатель новый, не появляется новая запись?! Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 31 января, 2020 Автор Жалоба Share Опубликовано 31 января, 2020 $homeUrl поправил, но это не влияло, google работал и в первом варианте... В общем, в таблице customers записей не появляется. Раскомментировал echo, ничего не выводится. Т.е. получается. что ничего не возвращается от FB? Еще такой момент, я сейчас сравнил настройки приложения, которые я на другом сайте делал и где все работает. Так вот там версия приложения 4.0, а на этом, что сейчас создал - 5.0, и выбрать другую нельзя. Это может как-то повлиять? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 февраля, 2020 Жалоба Share Опубликовано 1 февраля, 2020 В 31.01.2020 в 11:36, eugenem сказал: $homeUrl поправил, но это не влияло, google работал и в первом варианте... В общем, в таблице customers записей не появляется. Раскомментировал echo, ничего не выводится. Т.е. получается. что ничего не возвращается от FB? Еще такой момент, я сейчас сравнил настройки приложения, которые я на другом сайте делал и где все работает. Так вот там версия приложения 4.0, а на этом, что сейчас создал - 5.0, и выбрать другую нельзя. Это может как-то повлиять? А а как хоть это всё выглядит, есть ссылка на магазин?! Надо выяснять, что присылает facebook, что там, может он присылают ошибку, а не информацию о пользователе. Может какая-то настройка на facebook не включена. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 2 февраля, 2020 Автор Жалоба Share Опубликовано 2 февраля, 2020 Отправил ссылку в ЛС Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 февраля, 2020 Жалоба Share Опубликовано 2 февраля, 2020 6 часов назад, eugenem сказал: Отправил ссылку в ЛС Здесь вариант - только заниматься отладкой, в create_account.php расставлять метки, теже echo и смотреть, на какой строке останавливается, искать проблемный кусок кода. if (isset ($_GET['social_login']) && ($_GET['social_login'] == 'fb')) { ... } Например закомментировать редирект: header('Location: ' . filter_var($redirectUrl, FILTER_SANITIZE_URL)); и наоборот, там уже есть вывода отладочной информации, echo var_dump ..., вот эти строки, наоборот, раскомментировать. P.S. Попробовал сейчас на vamshop.ru вход через facebook - всё работает, т.е. код актуальный, по идее. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 3 февраля, 2020 Автор Жалоба Share Опубликовано 3 февраля, 2020 В общем, заработало... Прошелся по всему коду, затык был на на получении $userInfo. Оказалось, что на сервере отключена allow_url_fopen. Такой еще вопрос. В коде имя и фамилия берутся из одного значения - полного имени. В итоге у нас получается, к примеру: "Имя: Вася Пупкин" "Фамилия: Вася Пупкин" Наверно есть смысл, все же в имя писать имя, а в фамилию - фамилию? Эти данные ведь передаются в том числе отдельными значениями. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 февраля, 2020 Жалоба Share Опубликовано 3 февраля, 2020 44 минуты назад, eugenem сказал: В общем, заработало... Прошелся по всему коду, затык был на на получении $userInfo. Оказалось, что на сервере отключена allow_url_fopen. Такой еще вопрос. В коде имя и фамилия берутся из одного значения - полного имени. В итоге у нас получается, к примеру: "Имя: Вася Пупкин" "Фамилия: Вася Пупкин" Наверно есть смысл, все же в имя писать имя, а в фамилию - фамилию? Эти данные ведь передаются в том числе отдельными значениями. Хорошо, спасибо, что сообщили, в чём было дело. Можно, просто у меня например не запрашивается фамилимя, и поля фамилия нет вообще при оформлении заказа. Чем меньше данных и проще оформление - тем лучше. В /create_account.php смотрите что там в $userinfo через echo и правьте затем код: $firstname = html_entity_decode($userInfo['name']); $secondname = ''; $lastname = html_entity_decode($userInfo['name']); $fullname = html_entity_decode($userInfo['name']); т.е. если там есть в userinfo отдельно имя и отдельно фамилия, то просто исправьте этот код на что-то вроде: $firstname = html_entity_decode($userInfo['firstname']); $secondname = ''; $lastname = html_entity_decode($userInfo['lastname']); $fullname = html_entity_decode($userInfo['fullname']); Я просто уже точно и не помню, отдаёт facebook имя и фамилию отдельными полями или сразу отдаёт имя и фамилию. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 3 февраля, 2020 Автор Жалоба Share Опубликовано 3 февраля, 2020 Да, я это сделал, конечно. Думаю, неплохо бы в следующей версии поправить, а то как-то не комильфо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 февраля, 2020 Жалоба Share Опубликовано 3 февраля, 2020 3 минуты назад, eugenem сказал: Да, я это сделал, конечно. Думаю, неплохо бы в следующей версии поправить, а то как-то не комильфо. Так а как должно быть, покажите пример кода для гугла, facebook Добавлю правку в код по умолчанию. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 3 февраля, 2020 Автор Жалоба Share Опубликовано 3 февраля, 2020 FB: $firstname = html_entity_decode($userInfo['first_name']); $lastname = html_entity_decode($userInfo['last_name']); Google: $firstname = html_entity_decode($userProfile['given_name']); $lastname = html_entity_decode($userProfile['family_name']); Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 февраля, 2020 Жалоба Share Опубликовано 3 февраля, 2020 21 минуту назад, eugenem сказал: FB: $firstname = html_entity_decode($userInfo['first_name']); $lastname = html_entity_decode($userInfo['last_name']); Google: $firstname = html_entity_decode($userProfile['given_name']); $lastname = html_entity_decode($userProfile['family_name']); Спасибо, добавил правку в текущий код. Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 5 апреля, 2020 Жалоба Share Опубликовано 5 апреля, 2020 В текущем коде ошибка в файле create_account.php в строке 569, для ФейсБука: $lastname = html_entity_decode($userInfo['last_name']); $lastname - на конце не латинская буква e, а что-то другое Прямо диверсия какая-то. Полночи потерял, API уже начал читать вовсю. Думал фамилия дополнительных привилегий требует. И для Гугля тоже самое, но в $firstname, в строке 785 Это в патче 1.99.13 до 1.99.14 Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 апреля, 2020 Жалоба Share Опубликовано 5 апреля, 2020 5 часов назад, shaklov сказал: В текущем коде ошибка в файле create_account.php в строке 569, для ФейсБука: $lastname = html_entity_decode($userInfo['last_name']); $lastname - на конце не латинская буква e, а что-то другое Прямо диверсия какая-то. Полночи потерял, API уже начал читать вовсю. Думал фамилия дополнительных привилегий требует. И для Гугля тоже самое, но в $firstname, в строке 785 Это в патче 1.99.13 до 1.99.14 Спасибо, исправил. Да, неприятный глюк. Ссылка на сообщение Поделиться на другие сайты
Роман_DD 2 Опубликовано 10 апреля, 2020 Жалоба Share Опубликовано 10 апреля, 2020 В текущем коде можно авторизоватья и не вводить имя и фамилию при оформлении, Получается с пустыми полями офомрить заказ, это неправильно. Не знаю исправили или нет но в 14 версии было так. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 апреля, 2020 Жалоба Share Опубликовано 10 апреля, 2020 6 часов назад, Роман_DD сказал: В текущем коде можно авторизоватья и не вводить имя и фамилию при оформлении, Получается с пустыми полями офомрить заказ, это неправильно. Не знаю исправили или нет но в 14 версии было так. Добавил в ошибки, буду проверять - Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения