Попытка сохранить имя пользователя / пароль в cookie; JQuery - PullRequest
6 голосов
/ 14 декабря 2011

Я видел этот пример о хранении регистрационной информации в cookie.

http://eisabainyo.net/weblog/2009/02/20/store-login-information-in-cookie-using-jquery/

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

Эта страница является Login.aspx, которая указывает на AccountMenu.aspx

РЕДАКТИРОВАТЬ ЭТО ДЛЯ ДЕМО-ТЕСТА, ТЕСТА, КАКОГО ВЫ ХОТИТЕ ПОЗВОНИТЬ. этот сайт никогда не будет выходить в интернет. Я ЗНАЮ, что это не способ сделать это. Я ищу помощь в решении моей проблемы, а не люди, которые говорят мне, что это плохой дизайн.

(...)

    <div data-role="content">

    <form action="AccountMenu.aspx" method="post" id="login">

        <label for="email">Email</label>
        <input type="text" id="email" name="email"/>

        <label for="password"><%= GetLabel("password") %></label>
        <input id="password" type="password" name="password" />

        <div data-role="fieldcontain">
        <fieldset data-role="controlgroup">
            <input type="checkbox" name="remember" id="remember" class="custom" checked="true" />
            <label for="remember">Remember me ?</label>
        </fieldset>
        </div>

        <input type="hidden" name="submit" value="submitted" />
        <button type="submit" name="submit" id="submit" data-theme="a"  value="<%= GetLabel("new-login") %>" ></button>
        <button type="button" disabled="disabled" data-theme="a" value="<%= GetLabel("new-account") %>"></button>        

    </div>

 </form>

    <script type="text/javascript">

        if ($('#remember').attr('checked')) 
        {
            var email = $('#email').attr("value");
            var password = $('#password').attr("value");

            // set cookies to expire in 14 days
            $.cookie('email', email, { expires: 14 });
            $.cookie('password', password, { expires: 14 });
            $.cookie('remember', true, { expires: 14 });                
        }
        else
        {
            // reset cookies
            $.cookie('email', null);
            $.cookie('password', null);
            $.cookie('remember', null);
        }

        var remember = $.cookie('remember');
        if (remember == 'true') 
        {
            var email = $.cookie('email');
            var password = $.cookie('password');
            // autofill the fields
            $('#email').attr("value", email);
            $('#password').attr("value", password);
        }

    </script>    

Ответы [ 3 ]

14 голосов
/ 14 декабря 2011

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

$(document).ready(function() {

        var remember = $.cookie('remember');
        if (remember == 'true') 
        {
            var email = $.cookie('email');
            var password = $.cookie('password');
            // autofill the fields
            $('#email').val(email);
            $('#password').val(password);
        }


    $("#login").submit(function() {
        if ($('#remember').is(':checked')) {
            var email = $('#email').val();
            var password = $('#password').val();

            // set cookies to expire in 14 days
            $.cookie('email', email, { expires: 14 });
            $.cookie('password', password, { expires: 14 });
            $.cookie('remember', true, { expires: 14 });                
        }
        else
        {
            // reset cookies
            $.cookie('email', null);
            $.cookie('password', null);
            $.cookie('remember', null);
        }
  });
});
4 голосов
/ 14 декабря 2011
document.cookie = "login=" + username_from_DOM_here + "-----" + password_from_DOM_here + "; secure";

Не используйте путь в объявлении cookie и убедитесь, что страница HTTPS, тогда все будет в порядке.Безопасные файлы cookie могут передаваться только на страницах HTTPS, а игнорирование квалификатора пути гарантирует, что файл cookie недоступен для других частей сайта.Также не используйте квалификатор expires, поскольку срок действия файла cookie истекает в момент окончания сеанса браузера.

Есть некоторые проблемы безопасности, связанные с тем, что файл cookie по-прежнему содержит не хэшированные учетные данные в текстовом файле.Несмотря на то, что этот файл cookie никогда не должен передаваться за пределы HTTPS, к нему все равно могут обращаться вредоносные программы вне браузера.

0 голосов
/ 30 января 2013
**At first you need jquery.cookie.js file**

<script type="text/javascript">

$(document).ready(function() {

    var remember = $.cookie('remember');
    if (remember == 'true') 
    {
        var username = $.cookie('username');
        var password = $.cookie('password');
        // autofill the fields
        $('#username').val(username);
        $('#password').val(password);
    $('#login-check').attr('checked',true);//#login-check checkbox id..
    }


$("#UserLoginForm").submit(function() {
    if ($('#login-check').is(':checked')) {
        var username = $('#username').val();
        var password = $('#password').val();

        // set cookies to expire in 14 days
        $.cookie('username', username, { expires: 14 });
        $.cookie('password', password, { expires: 14 });
        $.cookie('remember', true, { expires: 14 });                
    }
    else
    {
        // reset cookies
        $.cookie('username', null);
        $.cookie('password', null);
        $.cookie('remember', null);
    }
  });
});

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