Как сохранить пользователя во всплывающем окне? - PullRequest
0 голосов
/ 14 мая 2009

У меня есть приложение, которое требует, чтобы пользователь повторно вводил свой пароль между 15 и 30 минутами бездействия, чтобы позволить ему продолжать то, что он делал.

Моя текущая идея состоит в том, чтобы иметь кусок JavaScript, который вызывает всплывающее окно через 15 минут и просит пользователя снова войти в систему. Сайт в целом имеет 15-минутный тайм-аут аутентификации и 30-минутный тайм-аут сеанса.

Затем я бы хотел, чтобы исходная страница имела обратную передачу, если пользователь успешно аутентифицирует себя во всплывающем окне.

В настоящее время у меня работает всплывающее окно (с 15-минутным обратным отсчетом с использованием JS), и пользователь может снова войти в систему, однако, когда всплывающее окно закрыто и пользователь пытается выполнить действие на своей исходной странице, они попросил войти снова.

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

Как передать успешную аутентификацию из всплывающего окна на исходную страницу?

Ответы [ 3 ]

1 голос
/ 14 мая 2009

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

Затем вы можете использовать AJAX или jQuery, чтобы вызвать модальное «всплывающее» окно, чтобы потребовать от них предоставления подробностей. Делая это, вы можете хранить все на одной странице, не беспокоясь о передаче учетных данных между страницами / формами / вкладками / что угодно.

Кроме того, у вас может быть 1 метод сценария, который запускается через x минут, чтобы запросить обновление, и второй javascript, который запускается через x + 2 минуты, чтобы выйти из приложения, если пользователь не отвечает.

Ваш метод кода может правильно сбросить все куки и сбросить тайм-ауты и может быть повторно использован на любой странице, которую вы пожелаете.

1 голос
/ 14 мая 2009

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

var debugWin = window.open('','aWindow','width=600,height=600,scrollbars=yes');
var somevar = debugWin.document.body.getElementById("my_hidden_div_id").innerText;

Затем вы можете обновить cookie-файл сеанса содержимым somevar из JavaScript. Пока вы поддерживаете дескриптор окна, вы должны иметь возможность получить доступ к DOM окна.

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

0 голосов
/ 14 мая 2009

Лучше использовать кадры. Сделайте верхнюю рамку 0 высотой и периодически обновляйте себя. Таким образом, он не будет заблокирован или случайно закрыт. Вы также можете попробовать сделать то же самое с Ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...