Я использую Ruby on Rails 3, и я хотел бы использовать метод cookies.signed
в промежуточном программном обеспечении Rack. Мне это нужно, потому что я хотел бы аутентифицировать пользователя непосредственно в промежуточном программном обеспечении, а не использовать before_filter
в файле application_controller.rb
.
Например, если я использую этот метод в контроллере следующим образом:
cookies.signed[:user_id']
Я получаю
---
- 1 # This is the id of the current signed in user
- a64ee3asdtjhcc7b35fcb280956be00ba27f94d48dfe4291c06db7d57577d5893 # This is the cookie salt
но если я использую это в промежуточном программном обеспечении Rack (того же приложения), то вот так:
request = Rack::Request.new(env)
request.cookies.signed[:user_id']
Я получаю
NoMethodError
undefined method `signed' for #<Hash:0x00000103333d40>
Итак, как я могу сделать возможным использование этого метода в промежуточном программном обеспечении? Как я могу получить идентификатор пользователя, чтобы я мог это подтвердить?
Может быть, мне нужно включить \ расширить, например, ActionDispatch ... если да, то как?