Авторизуйтесь с помощью Twitter на той же странице
Я использую модуль Node everyauth
для аутентификации в твиттере. На данный момент пользователь должен перейти на /auth/twitter/
аутентифицироваться, с путем перенаправления.
Проблема в том, что путь перенаправления перезагружает страницу, что нарушает построенную мной структуру "одностраничного приложения". Можно ли сохранить аутентификацию в Твиттере в рамках "одностраничных" границ?
2 ответа
Вы не можете этого сделать, вам нужно открыть новую страницу (но вы можете, например, открыть всплывающее окно и заставить Twitter перенаправить обратно на страницу, которая закрывает это всплывающее окно).
Не уверен, что это то, что вы ищете, я также создаю одностраничное приложение. Перенаправление неизбежно, но пользователь заходит в твиттер, аутентифицируется и возвращается на одну и ту же страницу, но я загружаю разные данные в зависимости от статуса пользователя, поэтому пользователь либо получает общий контент, либо его сохраненный контент.
// in server.js
app.get('/', routes.index);
// in routes.js, required in server.js
exports.index = function(req, res){
if(req.loggedIn){
getData(function(data){
res.render('home', { data:, data })
});
} else {
res.render('home', { data: false })
}
};
getData () в моем сценарии делает несколько проверок пользователя, чтобы увидеть их уровень доступа, затем предварительно загружает контент из нашего API и передает его в шаблон как JSON. Затем, когда приложение рендерится, оно просто ищет доступный JSON.