1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/songjinghe-iauth-php-sdk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 00:45 2e93a8b

Официальный PHP-SDK для открытых API сообщества ihome БУАА

ihome — это социальная сеть внутри университета БУАА. Использование открытых API ihome позволяет удобно вызывать все функции платформы через программирование.

Описание доступных API: http://i.buaa.edu.cn/space.php?uid=665&do=blog&id=33881

Инструкция по использованию Python-SDK: http://i.buaa.edu.cn/space.php?uid=665&do=blog&id=33936

Этот PHP-SDK представляет собой открытое реализование клиента сайта в протоколе iauth.

Протокол iauth был разработан ihome на основе протокола OAuth для управления правами доступа к данным. Подробнее: http://i.buaa.edu.cn/space.php?uid=665&do=blog&id=33989

Само ihome является реализацией сервера аутентификации и провайдера ресурсов в протоколе iauth.

Этот SDK предназначен для удобства обучения и исследования открытых API ihome. Для тестирования SDK было зарегистрировано специальное приложение. Если вы хотите создать своё приложение в каталоге приложений, пожалуйста, обратитесь по адресу: http://i.buaa.edu.cn/plugin.php?pluginid=apps&ac=apply. Пожалуйста, не используйте это приложение для злоупотреблений, таких как автоматическое выполнение скриптов для взлома ihome. В случае обнаружения такого поведения, ihome имеет право немедленно заблокировать данное приложение.

Предварительные условия использования

  • У вас есть веб-сервер, поддерживающий PHP версии 5.3 или выше.

  • Вы имеете права на изменение конфигураций сервера и его файлов.## Как использовать

  • Скачайте SDK.

  • Настройте пути к файлам таким образом, чтобы можно было получить доступ к http://localhost/ihome/demo_session.php через браузер.

  • Посетите указанный выше URL.

Описание файлов

  • Файлы, начинающиеся с префикса iauth_, используются для взаимодействия данных между сайтом и ihome согласно протоколу iauth.
  • Файлы, начинающиеся с префикса demo_, являются демонстрационными примерами, показывающими использование нескольких ключевых функций из файлов iauth_. Вы можете изучить эти примеры и адаптировать их под свои нужды.

Процесс работы SDK

Эта часть информации не обязательна для использования SDK. Вам не обязательно понимать её, чтобы начать работу с SDK.

На следующих диаграммах:

  • URL инициализации сессии, URL обратного вызова авторизации и URL обратного вызова входа — это три URL вашего сервера, которые вам потребуются при разработке веб-приложения. Они используются для реализации определённых функций, соответствующих следующим файлам SDK:

    • URL инициализации сессии соответствует demo_session.php.
    • URL обратного вызова авторизации соответствует demo_auth.php.
    • URL обратного вызова входа соответствует demo_login.php.
  • Путь входа в iauth: http://i.buaa.edu.cn/plugin/iauth/login.php

  • Путь проверки входа: http://i.buaa.edu.cn/plugin/iauth/getuid.php

  • Путь проверки авторизации: http://i.buaa.edu.cn/plugin/iauth/access.php![Схема процесса](http://git.oschina.net/uploads/images/2014/0831/165933_fd6bf17d_19536.png)# Инструкция по использованию

В данной части содержится информация, которая не является обязательной для использования SDK. Вам не обязательно понимать её, чтобы использовать SDK.

Данная часть представляет собой подробное описание схемы процесса выше.

  • ШАГ A: Пользователь через браузер обращается к http://localhost/ihome/demo_session.php, то есть к адресу инициализации сессии приложения.

  • ШАГ B: demo_session.php устанавливает сессию пользователя в его браузере и генерирует соответствующий параметр state (например, fedcba9876543210). Затем он переадресует пользователя на http://i.buaa.edu.cn/plugin/iauth/login.php, то есть на вход в iauth, передавая связанные параметры, такие как ?appid=[идентификатор приложения]&state=fedcba9876543210.

  • ШАГ C: Пользователь, имея связанные параметры, обращается к http://i.buaa.edu.cn/plugin/iauth/login.php. Эта страница требует от пользователя входа в ihome и проверяет легальность переданных параметров, а также наличие ранее предоставленного согласия на использование данного приложения. Если согласие ещё не дано, переход осуществляется к ШАГ D. Если же согласие уже получено, переход осуществляется к ШАГ G.* ШАГ D: Пользователь переадресуется на страницу авторизации приложения и показывается страница авторизации. Сервер ihome генерирует параметр verifier (например, ffffffffffffffff) и переадресует пользователя на http://localhost/ihome/demo_auth.php, то есть на адрес обратного вызова авторизации приложения. Он передаёт введённый параметр state и только что сгенерированный параметр verifier, например, ?state=fedcba9876543210&verifier=ffffffffffffffff.* ШАГ E: файл demo_auth.php отправляет запрос серверу ihome для завершения процедуры авторизации. Отображаются три параметра, полученные от ihome (идентификатор пользователя в ihome (uid, допустим, 5633), ключ доступа из 40 символов и секретный ключ доступа из 32 символов). Эти два последних параметра можно рассматривать как аналогичные имени пользователя и паролю. При обращении к ihome с этими двумя параметрами (ключ доступа + секретный ключ доступа) сервер ihome узнает, что вы хотите выполнять действия от имени пользователя 5633. Поэтому ваше приложение должно сохранять эти три параметра после успешной авторизации.

  • ШАГ F: теперь вы можете использовать ключ доступа и секретный ключ доступа для вызова API ihome и получения соответствующих данных.

  • ШАГ G: сервер ihome генерирует параметр verifier (например, eeeeeeeeeeeeeeee) и переадресует пользователя на http://localhost/ihome/demo_login.php, то есть на адрес обратного вызова входа приложения. Он передает введенный параметр state и только что сгенерированный параметр verifier, например, ?state=fedcba9876543210&verifier=eeeeeeeeeeeeeeee.

  • ШАГ H: файл demo_login.php отправляет запрос серверу для получения uid и ключа доступа, используемых при предыдущей авторизации (необходимости в секретном ключе доступа нет). Затем вы можете найти локально uid и ключ доступа, соответствующие которым находится секретный ключ доступа. После этого повторите ШАГ F для получения данных пользователя.

Есть проблемы- Посмотрите вики этого проекта

Часто задаваемые вопросы (FAQ)

  • Вопрос: После установки на сервер не удается получить доступ к ihome (через домен i.buaa.edu.cn)?

    Ответ: Это проблема с DNS-перенаправлением. Вы можете использовать IP 211.71.14.156 для доступа. Однако iauth временно не поддерживает запросы через IP. Поэтому вам следует изменить файл hosts, добавив строку 211.71.14.156 i.buaa.edu.cn. Если вы не можете изменить файл hosts (например, в виртуальной машине), воспользуйтесь следующей ссылкой для изменения исходного кода SDK... http://stackoverflow.com/questions/20574860

  • Вопрос: Где можно просмотреть результаты авторизации и журналы? Что делать, если произошла ошибка?

    Ответ:

  • Вопрос: Почему сначала всё работало нормально, но спустя некоторое время перестало работать?

    Ответ: Убедитесь, что время на вашем сервере точно совпадает со временем в Пекине, допускается погрешность до 20 секунд. Сервер ihome синхронизирует время с cn.pool.ntp.cn.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/songjinghe-iauth-php-sdk.git
git@api.gitlife.ru:oschina-mirror/songjinghe-iauth-php-sdk.git
oschina-mirror
songjinghe-iauth-php-sdk
songjinghe-iauth-php-sdk
master