Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
cori

Реализация OpenID

Рекомендованные сообщения

Добрый день!

Хочу сделать регистрацию через Wargaming OpenID, но не получается это сделать. Пробовал ставить uLogin и Loginza, но это все не подходит, т.к. необходимо вводить адрес от ВГ.

Просто хочу сделать кнопку или ссылку "Вход" которая будет перенаправлять на авторизацию на сайт Wargaming, а после подтверждения возвращать обратно на форум уже с ником игрока обратно ну и его регистрацией на моем форуме.

Видел несколько форумов ipb которые реализовали это. Сам ВГ говорит, что такими хуками не занимается и обращайтесь в поддержку платформы.Если кто-то реализовал такую форму авторизации, то пожалуйста, поделитесь им. Все таки танковое сообщество очень большое и думаю данный хук будет многим полезен.

Строго не судите меня, я в этом деле полный нуб.

Поделиться сообщением


Ссылка на сообщение

но это все не подходит, т.к. необходимо вводить адрес от ВГ

А что такого сложного ввести адрес от ВГ? openID в принципе так и работает https://ru.wargaming.net/support/Knowledgebase/Article/View/430/20/chto-tkoe-servis-openid

То, что вы описываете просто больше похоже на захардкоденные настройки с предопределенным адресом ВГ, но использующий тот же OpenID протокол. Кроме того, сам опенид клиент был убран IPS с 3.3x+, мотивируя тем, что библиотеки реализующие связь долго не обновляются и не соответствуют современным требованиям PHP.

 

Видел несколько форумов ipb которые реализовали это.

Спросить у администраторов форумов которые реализовали это?

Поделиться сообщением


Ссылка на сообщение

Не все поймут что надо вводить!

Поделиться сообщением


Ссылка на сообщение

Сделайте ликбез что надо вводить.

Поделиться сообщением


Ссылка на сообщение

Я получаю данные через OpenID и записываю его данные в базу.)))) А вот авторизовать не получается(((( Может кто знает как это сделать???

Поделиться сообщением


Ссылка на сообщение

Авторизовать на основе чего?

После валидации полученных данных создается новый аккаунт если его нету, где пользователь дальше логируется системой, вы лишь должны загрузить массив данных в $this->member_data. Посмотрите как это реализована в методе внешней авторизации /admin/sources/loginauth/external/auth.php, или в openID старых версиях

Поделиться сообщением


Ссылка на сообщение

Данная функция реализована. Если есть интерес, то пишите в ЛС...

Поделиться сообщением


Ссылка на сообщение

Интересен сам способ реализации и технические решения, которые были применены. Расскажите немного по подробнее что в итоге у вас получилось.

Поделиться сообщением


Ссылка на сообщение

Этот openID то еще говно шнягой оказался.

Хотел реанимировать старый модуль авторизации через него, но по мере изучения вопроса все больше понимаю почему разработчики его убрали. Система децентрализована (хотя это даже плюс), каждый openid провайдер работает с ним как хочет - кто-то в качестве адреса OP идентификатора использует урл с идентификатором пользователя pupkin.livejournal.com, кто-то без - ru.wargaming.net/id/, www.google.com/accounts/o8/id, кто-то отправляет email, кто-то вместо него nickname и тд. В таких условиях довольно трудно привязать авторизацию через openID к аккаунту на форуме, особенно если OP идентификатор является не уникальным. А IPS модуль писали с расчетом на то, что он будет уникальным и его можно будет привязать к аккануту. Но в случае с идентификатором ru.wargaming.net/id/ такое не выйдет - http://community.invisionpower.com/resources/bugs.html/_/ip-board/google-open-id-url-directed-identity-r26374

Разве что, как вариант, использовать в качестве привязки к аккануту хеш из md5( OP идентификатора + nickname ), если не писать для каждого сервиса отдельный интерфейс авторизации.

 

Очень интересно что в этом плане у уважаемого ТС'а получилось, и как у него реализовано привязка к аккаунту.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Система децентрализована (хотя это даже плюс), каждый openid провайдер работает с ним как хочет - кто-то в качестве адреса OP идентификатора использует урл с идентификатором пользователя pupkin.livejournal.com, кто-то без - ru.wargaming.net/id/, www.google.com/accounts/o8/id, кто-то отправляет email, кто-то вместо него nickname и тд.

 

Мы уже пришли к тому, что легче самим подключить авторизацию через любые соц. сети и объединить в нужный нам интерфейс. Благо, что практически все уже юзают OAuth 2.0, за исключением твиттера (у них OAuth 1) и ЖЖ

Поделиться сообщением


Ссылка на сообщение

Да я его начал то смотреть из-за ажиотажа вокруг него. В последнее время с стабильной регулярностью появляются темы с авторизацией через openid WG. Сделаю привязку к аккаунту форума на основе хеша identity_url + nickname, думаю такой хеш будет достаточно уникальным чтобы можно было идентифицировать пользователя с не уникальным OP идентификатором, как в случае Wargaming. Потом, может быть сделаю отдельный интерфейс для авторизации специально через WG, как фейсбука или вконтакте.

Поделиться сообщением


Ссылка на сообщение

Все оказалось проще, это IPS'овцы изначально немного заговнокодили и ввели людей в заблуждения. Они использовали для идентификатора identity_url урл который ввел пользователь (а в случае с WG и ему подобных это единый адрес для всех), хотя сервис в ответ возвращает параметр openid_claimed_id который является уникальным адресом пользователя (если верить инфы с стековерфлоу). Пожалуй откажусь от хеша в пользу claimed_id.

Все сводится к тому, чтобы при валидации данных _checkFirstPass() задать для идентификатора $this->data_store['fullurl'] полученный от провайдера openid_claimed_id, а не тот адрес который ввел пользователь и хранится в таблице openid_temp.

 

		if( is_array($sreg) and count($sreg) )
		{
			$this->data_store = array_merge( $this->data_store, $sreg );
		}

		if( $this->request['openid_claimed_id'] )
		{
			$this->data_store['fullurl'] = $this->request['openid_claimed_id'];
		}

Поделиться сообщением


Ссылка на сообщение

не работает

У WG появилась новая авторизация через API http://habrahabr.ru/post/233957/

Поделиться сообщением


Ссылка на сообщение

не работает

Опенид здесь отключен. Без него авторизация через wargaming не работает (профиль у форума не тот).

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...