Задать вопрос
b_e_m
@b_e_m
Front-End Dev

Как сделать авторизацию vk с помощью oauth + node.js + angularjs?

Проблема в основном на клиенте, опишите пожалуйста сам принцып работы? как делать?
при клике на:
<a href="/auth/vkontakte" class="signin__button">
				<i class="ico"></i>
				Войти с помощью ВК
			</a>

выполняется серверная авторизация с помощью oauth с редиректом на "auth/vkontakte/callback?code=*******************"
как с помощью ангуляра ловить респонс? что с ним делать вобще?
  • Вопрос задан
  • 7626 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Серверная авторизация довольно проста. Для начала нужно разобраться, как работает OAuth. Большая часть потока происходит на серверной стороне и редирект принимает серверная сторона, а не клиентская. Т.е. ангуляру вообще пофиг на редирект в целом, но он должен понимать, что сессия как-то была начата, за это должно отвечать API (Node.js).
Вам поможет вот эта штучка https://github.com/stevebest/passport-vkontakte

На клиенте обычно все реализуется через сервис или фабрику.
Вначале вы получаете от вашего сервера ссылку, а затем перенаправляете пользователя в вк, после возврата из вк ваша серверная сторона проверяет, что все ок или нет, сохраняет где-то все внутри у себя. Потом делает редирект на SPA. Как только SPA загружена, она запрашивает от сервера, как успехи в авторизации, сервер отвечает. Далее ваша бизнес-логика.

Очень важно строго следовать правилам OAuth и не передавать токен пользователя на клиент.

Если это звучит слишком сложно, есть готовые сервисы для авторизации, например Auth0.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ITZver
Описал в статье, как отловить коллбек, без выхода из приложения. Все весьма просто.
Статья
Ответ написан
Ваш ответ на вопрос

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

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