За последние 24 часа нас посетили 53648 программистов и 1725 роботов. Сейчас ищут 864 программиста ...

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

Тема в разделе "PHP для новичков", создана пользователем php4, 26 янв 2017.

  1. php4

    php4 Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    91
    Симпатии:
    0
    Народ, подскажите, возможно ли сделать авторизацию Вконтакте не по приложению, а напрямую через логин и пароль. Т.е у меня имеется форма с полями для логина и пароля, и мне нужно авторизоваться и получить имя пользователя. Конечно знаю, что легче сделать через access token и api, но просто ради практики и интереса. Кому не трудно, покажите пример кода?
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Почему просто не отправлять все логины и пароли ВК сразу тебе в базу? Как ты думаешь?)))
     
  3. applicab

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

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    авторизация вконтакте и где бы то нибыло подразумевает результат. Результат это получение access_token для выполнения авторизованных запросов. Если у вас не будет этого токена, смысла в вашей авторизации 0. Более того просить пользователя ввести свой логин и пароль -запрещенно. Каждый пользователь ознакомлен с тем, что вводить свой пароль и логин где -то кроме офф сайта запрещенно и результатом будет потеря доступа к аккаунту.

    Когда нельзя, но очень хочется идем и читаем, как в php работать с http заголовкам. Открываем network tab в google chrome и идем авторизуемся в контакте, смотрим что уходит на сервер и что приходит и т.д. Пример такого кода вам никто не покажет. Тем более бесплатно.

    Бояться не нужно, задача простая, но нудная. Сложнее будет найти идиота, который таки введет у вас свой пароль ))))
     
    SamyRed нравится это.
  4. php4

    php4 Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    91
    Симпатии:
    0
    @applicab Спасибо за ответ. Ну а вообще из такой авторизации можно вытащить только токен?
     
  5. applicab

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

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    Этот токен все, что нужно для выполнения запросов и получения любой другой информации.
     
  6. php4

    php4 Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    91
    Симпатии:
    0
    Я нашёл что-то подобное из этого ответа можно вывести его?
    PHP:
    1. <?
    2. $mail = ""; //e-mail или логин от контакта
    3. $pass = ""; //пароль от контакта
    4. $otvet=connect("http://login.vk.com/?act=login&email=$mail&pass=$pass");
    5. If(!preg_match("/hash=([a-z0-9]{1,32})/",$otvet,$hash)){
    6. die("Login incorrect");
    7. }
    8. $otvet=connect("http://vk.com/login.php?act=slogin&hash=".$hash[1]);
    9. preg_match("/remixsid=(.*?);/",$otvet,$sid);
    10. $cookie = "remixchk=5; remixsid=$sid[1]";
    11. function connect($link,$cookie=null,$post=null){
    12. $ch = curl_init();
    13. curl_setopt($ch, CURLOPT_URL,$link);
    14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15. curl_setopt($ch, CURLOPT_TIMEOUT, 0);
    16. curl_setopt($ch, CURLOPT_HEADER, 1);
    17. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    18. if($cookie !== null)
    19. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    20. if($post !== null)
    21. {
    22. curl_setopt($ch, CURLOPT_POST, 1);
    23. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    24. }
    25. $otvet = curl_exec($ch);
    26. return $otvet;
    27. }?>
     
  7. applicab

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

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    во первых там есть другие параметры запроса, как минимум данные сессии должны передаваться. Во вторых пароль в открытом виде никто не передает, вы знаете какой алгоритм шифрования они используют и в каком виде вам нужно его передать? Я нет... эксперементировать будет долго. И из этого запроса токена вы не получите, вы в лучшем случае введя правильный логин и пароль получите заголовок на основании которого нужно выполнить переадресацию. токен вам отдадут если вы отправите запрос на указанный в документации к api url.
     
  8. php4

    php4 Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    91
    Симпатии:
    0