Первая часть правильная: открывается окошко (Вы сами, вероятно, много раз видели такое), в нём происходит вход.
После успешного (или нет) входа, сервис (скажем, VK) отправит юзера на вашу страницу (redirect_url). Окошко закрывается.
В JS можно проверять, не закрыто ли окно входа (а оно должно закрыться после входа):
вот пример. Отправляете не сервер запрос (действительно вошли?), если да, то перерисовываете интерефейс (отправляете юзера на другой роут).