@Sparkis
PHP Developer

Как произвести авторизацию VK в пользовательском браузере и передать из него ключ доступа на C#?

Делаю авторизацию через Implicit Flow в VK.

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

Авторизация проходит по такой ссылке:
https://oauth.vk.com/authorize?client_id={CLIENT_ID}&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=photos,wall&response_type=token&v=5.52&revoke=1


Суть именно открыть в пользовательском браузере эту ссылку, где он нажмет "Разрешить" и его вернет назад в приложение.

Видел варианты, когда пользователя редиректят на страницу заглушку, где просто через протокол приложения возвращают access_token типа: myApp://{"access_token": "waefsgg3waefwata34ssge"}

А как все таки сделать это правильно? Как реализовывают? Хотя бы наводку на решение.

UPD: Копать в сторону вопроса "Общения внешнего браузера и локального приложения пользователя"?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
А как все таки сделать это правильно? Как реализовывают? Хотя бы наводку на решение.

https://dev.vk.com/api/access-token/implicit-flow-...
Если ты авторизуешься в браузерное приложение - redirect url у тебя будет на твою веб страницу, с которой ты начинал аутентификацию (там через js уже всё вытащится)

Если нужно как в твоём примере: myApp://{"access_token": "waefsgg3waefwata34ssge"}
То это называется deeplink. В разных ОС делается немного по разному, но в общем случае это делается так:
1. Ты делаешь десктопное/мобильное приложение
2. Это приложение каким-то образом регистрируется в системе как приложение для обработки какого-то протокола в урлах (например myApp). Это, обычно, происходит при установке
3. Профит. Когда браузер попытается открыть такой урл - он не сможет и обратится к ОС - она в свою очередь передаст этот урл в твоё приложение.

На винде это делается, очевидно, через реестр:
https://stackoverflow.com/questions/80650/how-do-i...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы