За последние 24 часа нас посетили 19105 программистов и 1638 роботов. Сейчас ищет 861 программист ...

Авторизация через контакт

Тема в разделе "PHP для новичков", создана пользователем Dimon2x, 5 апр 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Учусь делать вход, для yii2, через контакт, по этой инструкции https://github.com/yiisoft/yii2-authclient/blob/master/docs/guide-ru/quick-start.md

    Данные с контакта приходят в массив $attributes.

    Я решил посмотреть, что лежит в этом массиве, там много чего есть, о пользователе, но почему нету ключа email? Как быть?
    --- Добавлено ---
    тут проблема наверно не у yii2, а где-то у самого контакта?
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Не все социалки отдают емейл да и вместо емейла в большинстве случаев тел который никто не показывает.
     
  3. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    Если посмотреть в API контактика в меотд получения информации о пользователе, то будет видно, что мыло этот метод не отдаёт https://vk.com/dev/account.getProfileInfo
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Пишут, то, что надо получить его с помощью scope, я порылся в этом компоненте и не нашёл адресную строку, что бы это дописать, помогите пожалуйста, как сделать?
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Краткий алгоритм действий:
    1) Регистрируешь приложение в ВКонтакте
    2) Формируешь ссылку как в документации API https://vk.com/dev/auth_sites (если нужен email, то указываешь &scope=email )
    3) После получения кода делаешь запрос на получение access_token, в ответе приходит id и email пользователя
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou где эта ссылка находится в компоненте?
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou ну добавил я массив, всё равно не вывелся

    PHP:
    1. 'vkontakte' => [
    2.                     'class' => 'yii\authclient\clients\VKontakte',
    3.                     'clientId' => '111111111',
    4.                     'clientSecret' => 'fgrdhhh5645yrtrf',
    5.                    
    6.                     'attributeNames' => [
    7.                         'email',
    8.                 ],
    --- Добавлено ---
    У меня получилось, всего-то надо добавить ключ scope

    PHP:
    1. 'vkontakte' => [
    2.                     'class' => 'yii\authclient\clients\VKontakte',
    3.                     'clientId' => '1111111',
    4.                     'clientSecret' => 'ydMd7IoL',
    5.                     'scope' => [
    6.                         'email'
    7.                     ]
    8.                 ],
    --- Добавлено ---
    Ещё такой вопрос: сделал авторизацию, через гитхаб, работает отлично, то же самое прописывал в яндексе и потом пишет

    redirect_uri не совпадает с Callback URL, указанным при регистрации приложения

    Почему?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну видимо не совпадает, посмотри настройки.
    --- Добавлено ---
    Вопросы про Yii задавай в соотв. разделе :)