Как лучше всего прочитать секрет сессии Rails? - PullRequest
9 голосов
/ 10 октября 2008

Я хотел бы получить доступ к секрету сеанса Rails программно (я использую его для создания токена входа).

Вот что я придумала:

ActionController::Base.session.first[:secret]

Возвращает секрет сеанса. Тем не менее, каждый раз, когда вы вызываете ActionController :: Base.session, он добавляет еще одну запись в массив, так что вы получите что-то вроде этого:

[{:session_key=>"_new_app_session", :secret=>"totally-secret-you-guys"}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}]

Это кажется мне бесполезным.

Есть ли лучший способ получить доступ к секрету сеанса?

Ответы [ 5 ]

11 голосов
/ 01 февраля 2011

для рельсов4

Rails.configuration.secret_token
Rails.configuration.secret_key_base

для рельсов3

Rails.configuration.secret_token

Но если для Rails2.x, как упоминал Дон Пэриш,

ActionController::Base.session_options[:secret]
5 голосов
/ 10 октября 2008

Спасибо, Джейк.

Поскольку секрет не изменяется в зависимости от запроса или действия, это также работает:

ActionController::Base.session_options_for(nil,nil)[:secret]
3 голосов
/ 10 октября 2008
ActionController::Base.session_options_for(request,params[:action])[:secret]
1 голос
/ 23 февраля 2009

Для Rails 2.3 я использовал:

ActionController::Base.session_options[:secret]
0 голосов
/ 01 февраля 2011

Для Rails 3 Rails.configuration аналогичен Rails.application.config, поэтому Rails.configuration.secret_token действует так же, как и предоставляемый choonkeat.

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