Авторизуйтесь с помощью 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.

Другие вопросы по тегам