Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Реализация 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 которые реализовали это.

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

Опубликовано:
  • Автор

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

Опубликовано:

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

  • 2 недели спустя...
Опубликовано:
  • Автор

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

Опубликовано:

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

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

  • 1 месяц спустя...
Опубликовано:
  • Автор

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

Опубликовано:

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

  • 3 недели спустя...
Опубликовано:

Этот 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 ), если не писать для каждого сервиса отдельный интерфейс авторизации.

 

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

Опубликовано:
Система децентрализована (хотя это даже плюс), каждый 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'];
		}

  • 1 месяц спустя...
Опубликовано:

не работает

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

Опубликовано:

не работает

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.