OAuth2

Пт, 14/04/2017 - 13:14

Недавно начал изучать друпал 7 (с связи с желанием заказчика). Успешно создал небольшой сайтик с несколькими самописными модулями - все хорошо. Но есть сторонний сайт, который может предоставить OAuth доступ к моей учетке и есть желание авторизовываться через них. Технически (со стороны стороннего сайта) это возможно.
Скачал кучу модулей связанных с oauth авторизацией и их зависимости. Почитал о самой авторизации...

Теперь не ясно и непонятно, как данные модули связать со своим сайтом. Как подменить страницу логина drupal? Как подменить алгоритмы авторизации со стандартных, на данный? В документации к модулю OAuth2_client (https://www.drupal.org/project/oauth2_client) данный код:

$client_id = 'some_client_id';
  $oauth2_config = array(
    'token_endpoint' => $server_url . '/oauth2/token',
    'auth_flow' => 'user-password',
    'client_id' => $client_id,
    'client_secret' => '12345',
    'username' => $username,
    'password' => $password,
  );
  try {
    $oauth2_client = new OAuth2\Client($oauth2_config, $client_id);
    $access_token = $oauth2_client->getAccessToken();
  }
  catch (Exception $e) {
    drupal_set_message($e->getMessage(), 'error');
  }

И куда его? И что он даст (получает токен и все? Получается - мне надо большую часть процесса реализовывать самому?)
Не откажусь чего-нибудь почитать на тему авторизации OAuth druapl, если что-то такое есть, хотя с английским туго...
Помогите хоть чем-то )).

0 Спасибо

Комментарии

Аватар пользователя Alamir
1 неделя 2 дня назад Alamir #

А что конкретно необходимо после авторизации? Не совсем понимаю задачи.

Вы с помощью логина и пароля получаете токен, и вот уже с помощью этого токена в дальнейшем и работаете со стороннем сервером, например передаете с помощью curl что ли бо. В общем работаете со сторонним апи.

Про модуль не скажу, не пробовал.

0 Спасибо
Аватар пользователя nobody_21
6 дней 19 часов назад nobody_21 #

Мне нужно именно авторизоваться... Научиться пользоваться OAuth 2.0 (научиться его прикручивать) в друпале 7. На самом деле для работы с АПИ у меня ВСЕ есть, нет понимания КАК прикрутить саму авторизацию К ДРУПАЛУ... По сути, наверное, как получиться токен.

Как я уже написал, я поставил связку модулей, позволяющих "прикрутить" авторизацию. Модуль я "установил", даже указал урл в настройках, но что-то куда-то добавилось? Как мне теперь куда-то это вывести\увидеть? А может вывелось, но я не понял куда? )))

0 Спасибо
Аватар пользователя Studio VIZA
1 неделя 2 дня назад Studio VIZA #
nobody_21 написал:
с связи с желанием заказчика

Скажите заказчику, минимум четыре года изучения Друпала, позволят ему с вашей помощью выйти на захватывающие горизонты захвата мирового бизнеса.

По существу. Техническое задание, должно быть составлено опытным специалистом. У вас кто специалист? Заказчик?

0 Спасибо
Аватар пользователя nobody_21
6 дней 19 часов назад nobody_21 #

Честно, спасибо, но о том, что сказать заказчику я подумаю сам.
"Прикрутить авторизацию с помощью OAuth 2.0 через сторонний ресурс к друпал 7" - вот мне все понятно. Но я не на столько крут в друпале. Буду счастлив, если вы мне поможете "по теме" хотя бы ссылками.

0 Спасибо
Аватар пользователя ХулиGUN
1 неделя 2 дня назад ХулиGUN #

OAuth это всего лишь протокол авторизации. Не нужно гнать, что нет инфы по нём. Даже на русском полно пруф
Если вам нужны "волшебные слова", чтобы написать в код и получилась магия, то извините. Почитайте про сам протокол, на минуточку он сам по себе никакого отношения к друпалу не имеет. А когда прийдёт понимание протокола поймёте и что делать с токеном)))

0 Спасибо
Аватар пользователя nobody_21
6 дней 19 часов назад nobody_21 #

Речь о том, как эти слова встраиваются в друпал. У него свои методы интеграции. У меня есть реализации под современные фреймворки авторизации в соц.сетях. Но как подменить авторизацию в друпале - мне не ясно. Найдете пруф по друпалу - буду рад получить ссылку. Мне самому удалось найти пока лишь вот это: http://www.angarsky.ru/drupal/integraciya-drupal-dropbox-oauth-api.html

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 15 часов назад ХулиGUN #
nobody_21 написал:
У меня есть реализации под современные фреймворки авторизации в соц.сетях.

Если у Вас есть подобные реализации, то это не должно быть для вас магией. На деле я вижу, что это совсем не так.
OAuth сервер предоставляет только данные о пользователе и занимается идентификаций по токену, который, как правило имеет "время жизни". При регистрации у себя нового пользователя Вы сперва получаете этот самый токен и храните его у себя. По токену получаете данные о пользователе с сервера OAuth (email, full_name, etc) и сохраняете у себя как нового пользователя. Далее при авторизации юзера через Ваш Oauth сервер идёт проверка этого самого токена, который на клиенте как правило хранитьcя в куках. При посещении юзером вашего сайта проверяется сперва ключ сессии... если не проходит, то токен из кук(отправляет запрос на Oauth сервер), если всё ок, то авторизуем юзера по токену, создаём ему сессию и все дела, еси нет, просим ещё раз войти через Oauth используя свои логин и пароль.

И если б у Вас было это понимание, и наличие собственных реализаций под фреймворки, то спрашивали и гуглили бы скорее всего хуки бекенда аутентификации под друпал, а не то, что вы тут понаписали. Все ваши слова говорят о том, что для вас это сплошная магия.

0 Спасибо
Аватар пользователя nobody_21
6 дней 15 часов назад nobody_21 #

Вы упорно игнорируете мой вопрос, пытаясь рассказать о oauth2. Вопрос не в том, как он работает, а как ПОДКЛЮЧИТЬ в друпал его (в первой строке моего вопроса сказано, что я - НОВИЧЕК В ДРУПАЛЕ. - Понятия не имею как реализована даже стандартная авторизация). В документации к модулям о которых идет речь этот процесс не описан.

"Спрашивал бы и гуглил бы скорее всего хуки бекенда..." - скорее всего это то, что от ВАС требуется в этой ветке. Спасибо. Если у вас есть более развернутый ответ, более точный - я приму в дар и это.

0 Спасибо
Аватар пользователя nobody_21
6 дней 15 часов назад nobody_21 #

"Теперь не ясно и непонятно, как данные модули связать со своим сайтом."
"Как подменить страницу логина drupal?"
"Как подменить алгоритмы авторизации со стандартных, на данный?"

Вот это действительно интересно "в деталях".

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 12 часов назад ХулиGUN #
nobody_21 написал:
в первой строке моего вопроса сказано, что я - НОВИЧЕК В ДРУПАЛЕ

С каких пор это стало оправданием?

nobody_21 написал:
Понятия не имею как реализована даже стандартная авторизация

Да так же как и в большинстве других cms и faramwork`ах для которых у Вас "есть реализации"

nobody_21 написал:
скорее всего это то, что от ВАС требуется в этой ветке

От НАС ничего не требуется. мы никому ничего не должны. А направление в какую сторону копать Вам уже дали. Или Вы хотите, чтобы за Вас сделали Вашу работу, за которую Вы получаете деньги?

nobody_21 написал:
"Теперь не ясно и непонятно, как данные модули связать со своим сайтом."
"Как подменить страницу логина drupal?"
"Как подменить алгоритмы авторизации со стандартных, на данный?"

По Вашей же ссылке всё расписано... Андеад в комментах так же советует не изобретать велосипед, а использовать https://drupal.org/project/oauth‎
Но для того, чтобы использовать какой либо протокол, будь то авторизация или REST API нужно понимать как он работает. А у Вас этого понимания нет. Согласно протоколу OAuth2, изучение которого Вы настоятельно игнорируете форма с логином и паролем не должна обрабатываться на Вашем сайте, ибо таким образом вся секретность личных данных коту под хвост...
Единственное, что можно посоветовать - учить мат. часть. Удачи.

0 Спасибо
Аватар пользователя nobody_21
6 дней 10 часов назад nobody_21 #

Хулиган, Чем вы тут занимаетесь? Это форум "Разработка для Drupal \ Программирование" - по всем вопросам всех, при желании, можно отослать в документацию или в матчасть... Но, так как есть данный раздел и он предназначен для помощи (полагаю, это так) - я сюда пишу. А вы занимаетсь флудом и разводите оффтопик.

П.С. Оставьте ссылку на главную страницу документации здесь: убейте смысл форума, возможность понять и обсудить, и главное - докажите, что сообщество поддержки друпала "на дне" (в лучшем случае - документации), а потом уходите - вы все правильно сделаете.

0 Спасибо
Аватар пользователя Studio VIZA
6 дней 10 часов назад Studio VIZA #
nobody_21 написал:
от ВАС требуется в этой ветке

Требуется вашим заказчиком? У кого требуется?

0 Спасибо
Аватар пользователя nobody_21
5 дней 19 часов назад nobody_21 #

В общем, все понятно. Спасибо за помощь, сообщество друпал. Требуется "мне" - что - написано в вопросе. Всего лишь хотелось узнать как прикрутить модуль и увидеть его работу. Мо-ло-дцы!

0 Спасибо
Аватар пользователя ХулиGUN
6 дней 10 часов назад ХулиGUN #

Не говорите, что мне делать и я не скажу куда Вам идти)))
Дело в том, что я изначально вижу в чём Ваша проблема. Дальше будет только труднее, если будете полагаться на "магию".
Почему-то больше никто в Вашем топике не отписывается, хотя своим "флудом", как Вы выражаетесь, аппаю Ваш топик.
Дело в том, что кастомный OAuth сервер это не такой уж и распространённый кейс - основная масса ограничивается известными сервисами(google, vk...) для которых существуют отдельные готовые модули. А Вам, скорее всего, придётся писать такой самостоятельно. И как Вы собираетесь это сделать без основных знаний - совершенно непонятно. Кстати, можете посмотреть как устроены готовые модули авторизации под конкретные сервисы и реализовать свой по аналогии.
Сильно не переживайте, к пятнице у народа появится время и непреодолимое желание помогать униженным и обездоленным в ваш топик стянутся самые лучшие помощники. Ждите.
З.Ы. Через недельку загляну полюбоваться бурным обсуждением

2 Спасибо
Аватар пользователя nobody_21
5 дней 19 часов назад nobody_21 #

У меня, как раз стоит сервер авторизации на другой машине (на ларавеле). Мне надо было, чтобы друпал лез на него и авторизовывался. Все, спасибо. С вами все ясно - вы ОЧЕНЬ помогли.

0 Спасибо