Яндекс-авторизация для вашего сайта

5 июня 2012, 15:30

В прошлом году мы объявили о том, что на Яндекс можно входить при помощи профилей в популярных социальных сетях. Многие пользователи тогда спрашивали нас: «А когда будет возможность входить при помощи учетной записи на Яндексе на другие сайты?». Такая возможность у нас есть давно, она реализована при помощи протокола OpenID. Но дело в том, что этот протокол почти не развивается, и он довольно запутанный. Возможно, поэтому он не пользуется особой популярностью у разработчиков. А самое главное – OpenID не позволяет организовать доступ к API. Согласитесь, обидно, когда вы делаете сервис, основанный на API Яндекса, но для идентификации пользователя вам нужно использовать один механизм, а для доступа к API – другой. 

Мы решили немного упростить жизнь разработчикам и дать возможность получения информации о пользователе при помощи OAuth токенов

Итак, теперь есть новый удобный способ авторизации при помощи логина от Яндекса на вашем сайте – Яндекс.Логин


Подключить Яндекс.Логин довольно просто: 

  1. зарегистрировать приложение на странице oauth.yandex.ru
  2. установить у себя на сайте кнопку для входа при помощи Яндекса
  3. реализовать получение токена и запрос с его помощью данных о пользователе через API Яндекс.Логина


Если вы уже используете API Яндекса в своих проектах, то уникальный идентификатор пользователя доступен сразу. Для получения доступа к ФИО, дате рождения и адресам e-mail нужны дополнительные права, которые можно запросить на странице управления приложениями. Узнать больше можно на странице документации

18 комментариев
С одной стороны — спасибо, давно ждали!

С другой стороны — вот у меня на сайте уже есть OpenID авторизация, и куча пользователей Яндекса через неё работают. Если я перейду на OAuth, они все потеряют привязку Я-аккаунта к аккаунту на моём сайте.
Поэтому вношу рацпредложение: сделайте способ узнать OpenID-адрес авторизованного через OAuth юзера. Это позволит автоматически «сшить» аккаунты и практически безболезненно уйти с OpenID.

Думаю, что можно будет организовать в каком-то виде. Спасибо за совет!

Здравствуйте! Есть ли какой-нибудь прогресс в этом направлении?

Здорово!

Надо для Доброй Машины Пропаганды ( http://mashina.org ) предложить прикрутить, если там сейчас другое используется для Я.Сервисов))

 

А с Я.Диск будет работать? Потому, что у меня через токены авторизация не идет, только по логину/паролю

Должна работать. Но не с любым, а полученным специально для Диска, как написано в API: http://api.yandex.ru/disk/doc/dg/concepts/quickstart.xml#oauth. Токен может содержать и другие права, но без указанного на скриншоте, доступа в диск не будет.

Понятно, что с указаным доступом, но все равно не пускает, если указывать черех хидер или параметром.

А как вы передаёте токен в запросах?

http://api.yandex.ru/disk/doc/dg/reference/propfind.xml

PROPFIND / HTTP/1.1
Host: webdav.yandex.ru
Depth: 1
Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07

Надеюсь появление Яндекс.Логина не будет значит смерть Loginza ;) 

Которую и так многие перестали подерживать - например в ИПБ-3

lavrenko-viktor
6 июня 2012, 14:30
Да уж, не так то и просто установить. К кому можно обратиться за помощью? И будет ли работать на Wordpress?
denis-Bestchai-soloviev
8 июня 2012, 11:47

Китайский бы добавить еще)

ilya-bakharevich
17 июля 2012, 01:55

После успешной авторизации по ссылке 

https://oauth.yandex.ru/authorize?response_type=code&client_id=" . $this->clientId

меня перекидывает сразу же в почту, но никак не в redirect_uri. Почему так? Я ведь хочу вернуться и получить code, после чего перенаправить куда мне нужно.

Использую логин ПДД.

сам изначально юзал на своем сайте http://supernatural-ru.16mb.com/ OID  аутинтификацию, а потом решил перейти на Oauth - и тут понеслась. Благо пользователей еще не много, но половина мозг выели с тем, что какието функции отказали. Это ладно.
Сайт на DLE - эхал по началу модуль Юлогин, а потом отказался, многовато рекламы стало через него лезть, приходилось адблок и т.п. а потом снижение ТИЦ и ПР. Ну и убрал с сайт стороннее, приделал родные модули входа, что в движке есть.

А так интересная идея интеграции, через приложение можно на свой сайт из профилч выиащить 80% ниформации о юзере.
Klass