Комментарии 21
По поводу серверной части буду краток:
passportjs
passportjs
passportjs не подходит для реализации single page
Чудесно подходит, по своему опыту говорю.
И как бы вы реализовали авторизацию с помощью passportjs на стороне клиента?
А в чем конкретно вы видите проблему?
Проблем я не вижу.
Меня смущает нарушение концепции SPA. Вместо того чтобы показать пользователю всплывающее окно, динамически авторизировать его и перерисовал лишь нужные елементы, приходится перенаправлять пользователя на сайт соц сети, потом редиректить на redirect url и опять загружать приложение.
Представим на момент что у вас есть клиент, сервер со статикой и REST API. Не будет ли использование в данном случае passportjs костылем?
Меня смущает нарушение концепции SPA. Вместо того чтобы показать пользователю всплывающее окно, динамически авторизировать его и перерисовал лишь нужные елементы, приходится перенаправлять пользователя на сайт соц сети, потом редиректить на redirect url и опять загружать приложение.
Представим на момент что у вас есть клиент, сервер со статикой и REST API. Не будет ли использование в данном случае passportjs костылем?
https://github.com/jaredhanson/passport-facebook/blob/master/lib/strategy.js#L90
https://github.com/stevebest/passport-vkontakte/blob/master/lib/strategy.js#L103
Popup можно открыть с помощью window.open (в крайнем случае откроется новая вкладка).
Отследить закрытие можно при помощи события onunload как вариант.
https://github.com/stevebest/passport-vkontakte/blob/master/lib/strategy.js#L103
Popup можно открыть с помощью window.open (в крайнем случае откроется новая вкладка).
Отследить закрытие можно при помощи события onunload как вариант.
У вас, как я понимаю, Facebook авторизация сделана по старинке через всплывающее окно? Почему не через редирект?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Один раз выводит 1 при переходе по ссылке /#login
Вы наверное имели ввиду файл public/js/views/user_view.js, если там добавить console.log('1'), то выведет 2 раза. Я это обнаружил уже после публикации статьи.
Происходит это потому что 1 раз срабатывает событие change модели после того как она загрузится с сервера, а второй раз после того как изменится значение auth
Происходит это потому что 1 раз срабатывает событие change модели после того как она загрузится с сервера, а второй раз после того как изменится значение auth
Исправил. Спасибо за замечание.
Я думаю здесь самое место для моего вопроса:
Делаю SPA на Реакте с авторизацией через OpenAPI VK. При попытке залогинится через ВК в хроме возвращает ответ, что я не авторизован, хотя я залогинен в ВК и авторизация нормально проходит на той же машине через Firefox. ЧСХ, на другом компьютере в Хроме авторизация проходит успешно
Делаю SPA на Реакте с авторизацией через OpenAPI VK. При попытке залогинится через ВК в хроме возвращает ответ, что я не авторизован, хотя я залогинен в ВК и авторизация нормально проходит на той же машине через Firefox. ЧСХ, на другом компьютере в Хроме авторизация проходит успешно
В user.html имеется опечатка:
Если не авторизован, то будет сообщение вида: «Вы вошли как гость Гость»
<p class="navbar-text">Вы вошли как гость <%= user.auth ? user.login.toUpperCase() : 'Гость' %>
Если не авторизован, то будет сообщение вида: «Вы вошли как гость Гость»
Спасибо за статью. Как раз предстоит делать подобное в своем проекте. Теперь будет проще это сделать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Авторизация с помощью Facebook и Vkontakte в одностраничном приложении на Backbonejs + Express