‘Помните меня’ вход в систему в CodeIgniter

После прочтения ссылок, предложенных в комментариях, вы можете удалить длинный процесс (задержку) из потока FX.
Вы можете сделать это, вызвав другой поток:

public void write() {

    label.setText("FIRST TIME");

    new Thread(()->{ //use another thread so long process does not block gui
        for(int i=1;i<=6;i++)   {
            String text;
            if(i == 6 ){
                text = "LAST TIME";
            }else{
                 final int j = i;
                 text = "Value "+j;
            }

            //update gui using fx thread
            Platform.runLater(() -> label.setText(text));
            try {Thread.sleep(2000);} catch (InterruptedException ex) { ex.printStackTrace();}
        }

    }).start();
}

Или лучше использовать инструменты анимации FX, такие как:

private int i = 0; // a filed used for counting 

public void write() {

    label.setText("FIRST TIME");

    PauseTransition pause = new PauseTransition(Duration.seconds(2));
    pause.setOnFinished(event ->{
        label.setText("Value "+i++);
        if (i<=6) {
            pause.play();
        } else {
            label.setText("LAST TIME");
        }
    });
    pause.play();
}
10
задан imlouisrussell 31 December 2011 в 03:38
поделиться

2 ответа

(Этот ответ был ответом на исходный вопрос),

Как Вы сделали бы это? Или, как Вы создали бы сессию с более длинной датой истечения срока, чем другие?

Все созданные сессии использовали бы тот же $config ['sess_expiration'] в файле конфигурации (значение по умолчанию: 7 200 секунд), там способ передать пользовательское значение?

Расширение истечения сеансовых куки не собирается работать на, "помнят меня" функция, так как пользователь потеряет их сеансовые куки, когда они закроют браузер. Если Воспламенитель Кода не имеет собственного компонента, "помнят функцию", то необходимо будет записать что-то для отбрасывания длительного cookie, который содержит информацию, которая позволит автоматический вход в систему, когда сервер будет видеть его снова.

Существует хорошая статья о Персистентной Лучшей практике Cookie Входа в систему, которая может быть получена в итоге как:

  1. Когда пользователь успешно входит в систему с, Помнят Меня проверенный, cookie входа в систему выпущен в дополнение к стандартному cookie 2 управления сеансами
  2. Cookie входа в систему содержит имя пользователя пользователя и случайное число ("маркер" отсюда на) от соответственно большого пространства. Имя пользователя и маркер хранятся как пара в таблице базы данных.
  3. Когда незарегистрированный пользователь посещает сайт и представляет cookie входа в систему, имя пользователя и маркер ищутся в базе данных. 1. Если пара присутствует, пользователя считают аутентифицируемым. Используемый маркер удален из базы данных. Новый маркер сгенерирован, сохранен в базе данных с именем пользователя и выпущен пользователю через новый cookie входа в систему. 2. Если пара не присутствует, cookie входа в систему проигнорирован.
  4. Пользователям, которые только аутентифицируются с помощью этого механизма, не разрешают получить доступ к определенной защищенной информации или функциям, таким как изменение пароля, просмотр информации, идентифицирующей личность пользователя или тратить деньги. Для выполнения тех операций пользователь должен сначала успешно отправить нормальную форму входа в систему имени пользователя/пароля.
  5. Так как этот подход позволяет пользователю иметь несколько помнивших логинов от различных браузеров или компьютеров, механизм предоставляется пользователю для стирания всех помнивших логинов в единственной операции.

Другая статья, которая создает больше безопасности на те идеи в Улучшенной Персистентной Лучшей практике Cookie Входа в систему

Если Вы примените методы в тех статьях, то Вы не пойдете далеко неправильно!

33
ответ дан 3 December 2019 в 14:06
поделиться

Вы могли бы хотеть пересмотреть предложение от 'Улучшенной Персистентной Лучшей практики Cookie Входа в систему'. Я отправил свой анализ проблемы на сайте, но суть его - это:

Вы не можете предотвратить кражу cookie без безопасной строки, независимо от того, что

(*By 'защищают строку', я имею в виду SSL / туннелирование VPN / шифрование с открытым ключом - или устойчивая схема запрос-подтверждение *),

Я - все для персистентных лучших практик входа в систему, но существует точка, куда никакой объем обмана не собирается помочь, и где единственным путем является SSL.

3
ответ дан 3 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: