Я использую 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>
Итак, , как я могу использовать этот метод в промежуточном программном обеспечении? Как я могу получить идентификатор пользователя, чтобы я мог его аутентифицировать?
Может быть, мне нужно включить \extend, например, ActionDispatch... если да, то как?