Как перенаправить пользователя после успешного входа?

0

Обновление: после реализации приведенного ниже предложения Роба Седжвика стало очевидно, что перенаправление работает только тогда, когда пользователь вручную "F5" обновляет браузер (Chrome). Мне нужно добиться того, что это происходит автоматически в коде, поэтому перенаправление происходит без необходимости горячего обновления пользователем. Спасибо за помощь в этой последней части.

В настоящий момент ManageTodosView из того, что я понимаю, является первым действием после входа пользователя в систему. Он печатает список элементов, созданных пользователем. Рабочий пример можно найти здесь http://parseplatform.github.io/Todo/, а код https://github.com/ParsePlatform/Todo

Я использую код для того, чтобы действительно заставить логины пользователей работать, я не должен беспокоиться о том, что выводит остальную часть кода, потому что долгосрочный план будет заключаться в его удалении, пока что его полезно поддерживать чтобы показать, что приложение функционирует правильно.

Я использую этот код в качестве базы для создания веб-приложения. На момент, когда пользователь вошел в систему, они отображают данные на одной странице.

Я хочу иметь возможность изменить это, чтобы после входа в систему пользователь перенаправлялся на другую страницу, и затем информация отображалась там.

Причина этого в том, что индексная страница - это только страница приземления/входа, и я хочу перенаправить их на более структурированную HTML-страницу с меню и т.д.

В коде JS я просто переадресовываю что-то вроде:

self.location="top.htm";

к этой области кода?

// The main view for the app
  var AppView = Parse.View.extend({
    // Instead of generating a new element, bind to the existing skeleton of
    // the App already present in the HTML.
    el: $("#todoapp"),

    initialize: function() {
      this.render();
    },

    render: function() {
      if (Parse.User.current()) {
        new ManageTodosView();
      } else {
        new LogInView();
      }
    }
  });

Я добавил JS-код к этому JSFiddle

  • 0
    Привет, Дано, спасибо за упоминание, надеялся, что ты сможешь предоставить больше информации о том, что делает manageTodosView. Вы пытались заменить его полностью? Это одностраничное приложение? Что говорят люди, которые сделали заявление? Людям на SO всегда будет трудно понять, что делает приложение, без более подробной информации.
  • 0
    Я пытался обновить на основе ваших комментариев, не уверен, что это поможет, возможно, мы могли бы настроить DM, если вы готовы помочь дальше?
Показать ещё 1 комментарий
Теги:
parse.com

4 ответа

1
Лучший ответ

Обновить:

Чтобы решить проблему страницы, нуждающейся в ручном обновлении до перенаправления, вставьте

window.location.href="/someurl";

в следующий раздел кода в файле todoe.js и закомментируйте новый ManageTodosView(); код.

      Parse.User.logIn(username, password, {
        success: function(user) {
window.location.href="user_home.html";          
//new ManageTodosView();
          self.undelegateEvents();
          delete self;
        },


  • 0
    ура, который работал, единственное, на данный момент, мне нужно обновить страницу, прежде чем она перейдет на новый URL. Есть ли что-то, что я могу добавить в Js для автоматического обновления страницы?
  • 0
    window.location.reload () - это команда для перезагрузки текущей страницы с сервера. Вы не можете сделать оба, хотя. (как только вы покидаете страницу, вы покидаете часть сценария) Добавьте еще несколько деталей к вопросу о всей работе?
Показать ещё 3 комментария
0

Я бы предложил более надежный шаблон для интеграции образцов Parse Todo с реальными приложениями. "Marionette" предлагает большую ценность в реальном мире.

Если вы потратите время на просмотр структуры приложения, а затем посмотрите на функцию "loginSuccess" (прокрутите до самой нижней части ссылки), ее довольно просто переадресовать. Вы можете использовать маршрутизатор, как показано, или вы можете использовать агрегированные события Marionette, которые выглядели бы так:

    vent.trigger('header:loggedIn', _user);

somewhere else in any module within the app....

    vent.on('header:loggedIn', function (user) {
        that.setViewNew(user);
            }); 

...

        setViewNew : function (user) {
    User = user;            
    var viewOptionsUser = {
        collection : this.roleList,
             events : {
        'keypress #new-todo':   'createTaskOnEnter'},
         parentUser : User};

    this.headerRegion.show(new HeaderView(viewOptionsUser));        
    this.mainRegion.show(new RoleRoleListCompositeView(viewOptionsUser));
        }
  • 0
    Cheers? Rob Rowntree Я посмотрю, не могли бы вы просто дать мне знать, что вы подразумеваете под более "надежным" шаблоном?
  • 0
    прочитайте что-нибудь от Дерика Бэйли ... lostechies.com/derickbailey/2012/04/17/… для получения информации о надежных .... он написал марионетку.
0

Попробуйте это тоже

window.open( 'URL', '_ родителя);

-1

Попробуйте что-то подобное, чтобы перенаправить пользователя

window.location = 'www.google.com'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню