Pull to refresh

Comments 21

passportjs не подходит для реализации single page
И как бы вы реализовали авторизацию с помощью 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 как вариант.
У вас, как я понимаю, Facebook авторизация сделана по старинке через всплывающее окно? Почему не через редирект?
Потому что у меня одностраничное приложение, и хотелось бы авторизировать пользовател без перезагрузки страници.
небольшое замечание по public/js/login_view.js
что будет, если в метод render вы добавите
console.log('1');
?
ну так что, автор не скажет, сколько раз выведется в консоль данное сообщение?
Один раз выводит 1 при переходе по ссылке /#login
Вы наверное имели ввиду файл public/js/views/user_view.js, если там добавить console.log('1'), то выведет 2 раза. Я это обнаружил уже после публикации статьи.

Происходит это потому что 1 раз срабатывает событие change модели после того как она загрузится с сервера, а второй раз после того как изменится значение auth
Я думаю здесь самое место для моего вопроса:
Делаю SPA на Реакте с авторизацией через OpenAPI VK. При попытке залогинится через ВК в хроме возвращает ответ, что я не авторизован, хотя я залогинен в ВК и авторизация нормально проходит на той же машине через Firefox. ЧСХ, на другом компьютере в Хроме авторизация проходит успешно
Я уверен, что комментарии на Хабре читают куда больше людей, чем просматривают новые вопросы на Тостере, а посему вполне логично спросить там, где больше вероятность получить ответ.
Но таки да, намёк в виде минусов понял, учту.
В user.html имеется опечатка:
<p class="navbar-text">Вы вошли как гость <%= user.auth ? user.login.toUpperCase() : 'Гость' %>

Если не авторизован, то будет сообщение вида: «Вы вошли как гость Гость»
Спасибо за статью. Как раз предстоит делать подобное в своем проекте. Теперь будет проще это сделать.
Only those users with full accounts are able to leave comments. Log in, please.