Интеграция OAuth 2.0 с CodeIgniter

https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server

Я нашел это на GitHub, однако шаги для реализации на самом деле не помогают установить код OAuth в CodeIgniter и не нашли действительно хороших статей о том, как это сделать

Кто-нибудь уже сделал это, чтобы предложить мне помощь в настройке?

Ответ 1

Хе Хоанг,

Библиотека oAuth не очень понятна. Вот как я работал:

Основы

  • Прочитайте oAuth 2.0 draft 23, чтобы получить базовую идею oAuth, роли и потоки.
  • Затем следуйте инструкциям по установке контроллера и библиотек из alexbilbie в вашей установке CodeIgniter.
  • Установите таблицы и добавьте приложение и некоторые роли (подумайте о приложении Facebook и о ролях, для которых вы можете запросить разрешения)
  • Убедитесь, что вы сделали свою функцию validate_user в файле oAuth_server.php, внизу где-то

Сделайте запрос

Теперь вы хотите выполнить запрос авторизации в качестве клиента. Эти несколько простых шагов описаны в в этом разделе.

Изменить: для автоматизации этого можно использовать библиотеку авторизации Philsturgeon oAuth 2.0. Описанный здесь ручной способ.

Для библиотеки это означает:

/index.php/oauth?client_id=IN_YOUR_APPLICATION&redirect_uri=IN_YOUR_APPLICATION&response_type=code&scope=YOUR_ROLE

Заполните переменные с данными, которые вы указали в базе данных.

Отладить часть ошибки, которую он может дать.

Если все пойдет хорошо, вы выполните следующее:

Войти → Авторизованное приложение → См. страницу redirect_uri с кодом: = XXXXXXX

Вам понадобится код XXXXXXX

Затем на redirect_uri сделайте сообщение в /index.php/oauth/access_token

С этими переменными (теперь вы все знаете)

  • client_id (в таблице приложений)
  • client_secret (в таблице приложений)
  • redirect_uri (в таблице приложений: где вы хотите перейти для сохранения access_token)
  • код (XXXXXX)
  • grant_type (должно быть "authorization_code" ). Вы знаете это после прочтения этого раздела!

Этот пост возвращает строку JSON, содержащую access_token (или ошибку). ДА!

Что дальше

Сохраните access_token в вашем фактическом приложении и используйте его в запросах. На вашем сервере ресурсов (вероятно, API и тот же проект CodeIgniter, что и я, как только я объяснил сервер авторизации) вам нужно проверить valid_token перед возвратом результатов.

Это работает следующим образом:

$this->load->library('oauth_resource_server');
if (!$this->oauth_resource_server->has_scope(array('account.basic')))
{
    // Error logic here - "access token does not have correct permission"
    show_error('An access token is required to request this resource.');
}
else
{
    //GO RETURN RESULTS
}

Надеюсь, что это заставило вас работать!

PS: вам нужно создать некоторую область администрирования для управления приложениями, сеансами и ролями.

Eric

Ответ 2

Я использовал другую искровую библиотеку, которая действительно хороша для использования с codeigniter. вот хороший учебник о том, как установить это с помощью искры и использовать его. Учебник Oauth для codeigniter

Ответ 4

В своем исследовании я следую следующим руководствам

Когда вы будете готовы, загрузите и начните кодирование через эту библиотеку, поддерживаемую для CodeIgniter