Как сохранить логин в cookie в Rails 3? - PullRequest
4 голосов
/ 14 июня 2011

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

Основываясь на ответе ниже, вот псевдокод, который я получил:

# encoding: utf-8
class SessionsController < ApplicationController
  skip_before_filter :authorize

  def new
    params[:username] = cookies[:username] unless cookies[:username].nil?
  end

  def create
    if user
      cookies[:username] = {:value => params[:username].downcase, :expires => 2.weeks.from_now }
    end
  end

end

Большая часть кода для ясности опущена.

Ответы [ 2 ]

5 голосов
/ 14 июня 2011

Просто установите куки, используя магазин печенья, как это:

cookies.signed[:username] = { :value => "username", :expires => 2.weeks.from_now }

.Signed делает cookie "защищенным от несанкционированного доступа".

На ваш взгляд, вы, вероятно, захотите что-то вроде этого:

<%= f.text_field :username, :value => cookies.signed[:username] %>
2 голосов
/ 14 июня 2011

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

cookies[:username] = { :value => "the_username", :expires => 2.weeks.from_now }

Работает так же, если вы хотите версию с защитой от несанкционированного доступа с cookies.signed[:username]

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