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.
На следующих диаграммах:
URL инициализации сессии, URL обратного вызова авторизации и URL обратного вызова входа — это три URL вашего сервера, которые вам потребуются при разработке веб-приложения. Они используются для реализации определённых функций, соответствующих следующим файлам SDK:
demo_session.php
.demo_auth.php
.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# Инструкция по использованию
В данной части содержится информация, которая не является обязательной для использования 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 для получения данных пользователя.
Вопрос: После установки на сервер не удается получить доступ к 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
Вопрос: Где можно просмотреть результаты авторизации и журналы? Что делать, если произошла ошибка?
Ответ:
- Журналы авторизации и информация о пользователях, которым была предоставлена авторизация, доступна по адресу: http://i.buaa.edu.cn/plugin/iauth/debug/applog.php?appid=cab4d4effedabf32
- Журнал ошибок (общий, для всех приложений): http://i.buaa.edu.cn/plugin/iauth/debug/apperror.php
- Обзор ошибок iauth и решения: http://git.oschina.net/songjinghe/iauth-php-sdk/wikis/iauth-как-использовать-сообщения-о-шибках- Вопрос: При нажатии кнопки "Авторизация" в приложении нет перехода на страницу авторизации? Ответ: Сначала отмените авторизацию, а затем попробуйте снова.
Вопрос: Почему сначала всё работало нормально, но спустя некоторое время перестало работать?
Ответ: Убедитесь, что время на вашем сервере точно совпадает со временем в Пекине, допускается погрешность до 20 секунд. Сервер ihome синхронизирует время с cn.pool.ntp.cn.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )