1) Создание приложения на OAuth@mail.
Сначала надо создать приложение на https://oauth.mail.ru/app/ для того, чтобы зарегистрировать redirect URI, которые будут использоваться на сайте платформы iot-core.
Пример:
1.1. Переходим по ссылке https://o2.mail.ru/app/new/
1.2. Вводим "Название проекта": app_reg_mail
1.4. Вводим все redirect_uri (если их несколько, то в столбик): https://yatest.eltex-co.ru:7788/api/v1/login/oauth2/code/mail-ru
1.5. Ставим галочку в чекбокс: Я ознакомился и принимаю условия Лицензионного соглашения и Правил использования данных
Скрин №1 заполненного шаблона создания приложения:
1.6. Нажимаем кнопку "Подключить сайт"
1.7. При необходимости редактируем дополнительные поля и нажимаем "Сохранить изменения".
Скрин №2 заполненного шаблона создания приложения:
2) Настройка Ansible
Созданные два параметра clientId и clientSecret, надо указать в ansible-iot/vars/default.yml:
# Паремтры клиентских регистраций (через соцсети). clientRegistrations: ... mailRu: clientId: "43214a417211423ca7d643c1a8bd038a" clientSecret: "5b12f37b6c4e4a1584a3d405edde94b5"
Так же установить параметр true для allowSocialNetworks;
# Параметры для управления доступностью саморегистрации. selfRegistration: allow: true allowDemo: true allowSocialNetworks: true
После заполнения, если платформа была уже запущена, то потребуется остановить платформу;
ansible-playbook stop_iot.yml
Полностью очистите docker от контейнеров и образов платформы;
docker rm -f $(docker ps -a -q); \ docker volume rm -f $(docker volume ls -q); \ docker image rm -f $(docker image ls -q)
из директории с проектом Ansible запустить
ansible-playbook install_iot.yml
3) Проверка работы
Документация с описанием авторизации и кодами ошибок через OAuth 2.0@Mail находится по ссылке: https://oauth.mail.ru/docs/#web
Пример из запросов:
В случае успешного прохождения авторизации пользователь будет перенаправлен на адреса следующего вида:
2.1. {redirect_uri}?state={some_state}&code={authorization_code}
GET https://yatest.eltex-co.ru:7788/api/v1/oauth2/authorize?redirect_uri=https://yatest.eltex-co.ru:7788/ng/login&response_type=code&client_id=web-client
Status 302 Found
2.2. Если redirect_uri ссылается на localhost, тогда поле state передавать необязательно.