В общем случае (а таковых 99.9%) — да. Дальше лучше не читать, чтобы спать спокойно.

ВАЖНО убедиться, что при авторизации в адресной строке vk.com

Как оно внутри работает?

Пусть Петя заходит на новостной сайт, скажем, Тинькофф Журнал. ТЖ ничего про Петю не знает, кроме IP-адреса. Но предложит узнать через кнопку “Войти через ВКонтакте”. В браузере откроется новое окошко, которое отправит Петю на сайт ВК. ВКонтакте работает по HTTPS и Петя может чутка расслабиться. Браузеры умные и не отдадут данные окошка ВК какому-то там ТЖ.

Выглядит окошко вот так:

Обратите внимание на знак замочка в левом верхнем углу. Он подтверждает, что vk настоящий, а не подменный, выдан V Kontakte LLC

Это только кажется, что только два поля. Скрытых там целая куча, они понадобятся для объяснения позже. После нажатия «Разрешить» в ВК отправляется такая информация:

    POST /authorize
    HOST oauth.vk.com
    client_id = 123456
    redirect_uri = http://tjournal.ru/auth/vk
    login = petya
    password = $миллион_баксов_на_счету$

Здесь, client_id — это уникальный идентификатор ТЖ, login и password — учетные данные Пети. Если Петя правильно ввёл логин и пароль от своего аккаунта ВК, то процедуру входа считаем успешной. Всё дальнейшее общение между ТЖ и ВК будет происходить вообще без участия Пети и его браузера. ВК вытащит из сообщения redirect_uri адрес ТЖ и отправит на него специально сгенерированный под нашего Петю шифр YGFHJNKLMVGFQTGH.

С этого момента у ТЖ будет ровно час, чтобы с помощью шифра YGFHJNKLMVGFQTGH обратиться в ВК напрямую, без Пети, чтобы получить другой шифр, который называется API access_token. Вот он:

{
    "access_token": "SlAV32hkKG",
    "token_type": "bearer",
    "expires_in": 3600,
    "refresh_token": "8xLOxBtZp8",
}

Этот токен даётся на короткое время (3600 секунд) и работает только для Пети. Теперь ТЖ должен прикладывать access_token к ЛЮБОМУ запросу к ВКонтакте, если хочет что-то узнать про Петю или его друзей. Если ТЖ попробует с использованием этого токена узнать имя Тани, то ВК вернёт ему ошибку. Более того, если ТЖ не захочет плясать под дудку ВК и работать без шифрования, то его тоже ждёт неудача.

Важно отметить, что пароль мы вводили в ВК, а не в ТЖ. У ТЖ нет никаких ваших данных. Всё, что у него есть на руках, лишь на короткое время. Как только оно истечет, ТЖ придётся заново отправлять Петю на страницу аутентификации ВК. По токену нельзя получить логин и пароль ВК.

Схематично всё взаимодействие:

НО ВЕДЬ

Внимательный читатель скажет:

Но ведь ТЖ может сделать такую же формочку, как у ВК и пусть пользователь вводит логин и пароль ВК прямо на сайте ТЖ.

Тогда у ТЖ будут данные нашего Пети и сможет ТЖ нашему Пете наломать дров в его аккаунте. Девок хороших из друзей удалить и деньги со счёта снять.

Чтобы такого бардака не было, в форму аутентификации зашивают специальные скрытые поля, в которых записан шифр. ВК при получении запросов проверяет этот шифр. И если ВК никогда такой шифр не выдавал, то ответит ошибкой на запрос.

ВАЖНО убедиться, что при авторизации в адресной строке vk.com

А как насчет публичного WiFi?

Сниферы позволят перехватить данные Пети только, когда сайт работает без шифрования. Сейчас все сайты, которые взаимодействуют с аутентификацией VK/Google/Facebook обязаны использовать шифрование. Так положено по стандарту OAuth 2.0. Как вообще возможно перехватить токен или данные ВК?

Такое возможно через атаки Man in the middle. Это когда у пользователя установлен рут, то есть физический доступ к телефону/компьютеру, подменены сертификаты и где-то в пределах сети работает злоумышленник. Такую штуку сложно провернуть и ради рядовых пользователей заморачиваться не будут. А если есть физический доступ к телефону, там и так уже делов можно натворить.

Итоги

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

В случае удаления или изменения вашей учетки ВК все токены становятся недействительными.

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

Удобно!