Данное руководство поможет вам интегрировать технологию ISP Login в ваш проект.
Откройте демонстрационную страницу, нажмите кнопку "Login via InvestorsStartPage".
Откройте исходник страницы. Найдите строку:
// TODO: evt.data contains ISP-Login profile in JSON-string format
В этом месте вы можете обработать данные профиля пользователя, возвращённого ISP. Например, отправить на сервер для регистрации в базе.
Скачайте демо-страницу.
Функция isp_login_popup() отвечает за открытие окна входа и не требудет изменения. Забирайте как есть в свой проект на страницу входа.
Самое важное происходит в обработчике ниже.
Результат входа (профиль) либо отказа от входа отобразится в DIV ниже кнопки входа с помощью jQuery:
$('#isp-result').text(unescape(evt.data));
Закомментируйте эту строку и раскомментируйте эту:
// console.log(unescape(evt.data));
Перезагрузите изменённую демо-страницу. В консоли разработчика браузера переключитесь на вкладку "Console". Нажмите кнопку "Login via InvestorsStartPage". Профиль отобразится в консоли.
Данные профиля представлены в формате JSON, можно использовать ваш любимый парсер на стороне сервера для разбора профиля.
Простой пример приёма и отображения разобранного профиля на PHP:
$isp_profile = json_decode($_POST["isp_profile"]);
// use parsed data by field name:
echo $isp_profile->{'token'};
// or dump all profile fields
var_dump($isp_profile);
Поместите этот демо-скрипт на сервер (например, в reg.php) и выполните связку получения профиля на JS с отправкой на ваш сервер.
Как упоминалось выше, в демо-странице есть комментарий:
// TODO: evt.data contains ISP-Login profile in JSON-string format
Давайте отправим полученный профиль при помощи AJAX-запроса на сервер в демонстрационный PHP-скрипт.
Замените TODO-комментарий на код:
$.post( "http://yourserver.com/reg.php", { isp_profile: unescape(evt.data) } );
Разместите демо-страницу и PHP-скрипт приёма профиля на ваш сервер (на один и тот же, для простоты, чтобы избежать сложностей с кросс-доменными AJAX-запросами).
Загрузите в демо-страницу с вашего сервера, нажмите кнопку "Login via InvestorsStartPage" и пронаблюдайте, как на вкладке "Network" консоли разработчика в браузере будет отправлен XHR запрос. Данные профиля должны быть отображены через PHP-скрипт. Есои всё происходит так, значит вы готовы обрабатывать их, например зарегистрировать пользователя.
Кодировка ответа — utf8. Каждое значение — строка не более 256 символов.
UID (ID пользователя) — это строка, содержащая номер, например, "12345". UID — это надёжный идентификатор профиля (пользователь не может его изменить). Его можно использовать, чтобы распознавать уникального пользователя.
Если какие-то поля профиля (необязательные) не заполнены пользователем, они будут представлены как пустые строки в JSON.
Пример кнопки входа:
Other button styles (HTML/CSS) see on this page.
Кнопки для входа доступны в нескольких стилях. Можете использовать подходящий вариант из примеров на этой странице (исполненный в HTML/CSS).
JSON-кодированный профиль пользователя, возвращённый через JavaScript-часть, может быть дополнительно проверен через запрос от вашего сервера к нашему. Используйте поле "token" в профиле.
Отправьте значение поля "token" в запросе вида:
curl https://login.investorsstartpage.com/check.aspx?token=5c8d624e-73ba-4440-9165-75209f63c393
Ответ будет представлен в формате JSON.
Ответ при успешной верификации:
{
"status" : 1,
"UID" : "12345",
...
}
Ключевые поля ответа при успешной проверке — это: UID и status. Все остальные поля — данные профиля. В этом месте можно удостовериться, что профиль, отданный через JS, и полученный от нашего сервера, совпадают.
Ответ при неуспешной проверке:
{
"status" : 0
}
Если status равен 0, никакие другие поля не передаются.
Токен живёт 5 минут.
Токен может быть использован для проверки только один раз. После успешной проверки токен удаляется на нашей стороне (попытка повторной проверки и получения профиля с нашего сервера приведёт к неудаче).
Диалог показывает сайт, запрашивающий профиль.
Есть три варианта развития событий по клику на кнопку входа: