Ruby on Rails 3 kullanıyorum ve Rack ara yazılımında cookies.signed
yöntemini kullanmak istiyorum. Buna ihtiyacım var çünkü application_controller.rb
dosyasındaki bir before_filter
dosyasını kullanmak yerine, doğrudan middleware'de bir kullanıcının kimliğini doğrulamak istiyorum. Bir kontrol olarak, bu şekilde bu yöntemi kullanmak durumundaÇerezler bir ara katman yazılımında nasıl kullanılır?
Örneğin:
cookies.signed[:user_id']
I
---
- 1 # This is the id of the current signed in user
- a64ee3asdtjhcc7b35fcb280956be00ba27f94d48dfe4291c06db7d57577d5893 # This is the cookie salt
olsun ama (aynı uygulamanın) bir Raf katman olarak bu kullanımı halinde yol:
request = Rack::Request.new(env)
request.cookies.signed[:user_id']
alıyorum
NoMethodError
undefined method `signed' for #<Hash:0x00000103333d40>
Yani, bu yöntemi bir ara yazılımda kullanmak nasıl mümkün olabilir? Kullanıcı kimliğini nasıl doğrulayabilirim ki bunu doğrulayabilir miyim?
Belki, nasıl öyleyse ... Örneğin, ActionDispatch uzatmak \ dahil etmek zorunda?
Bu doğru yönde işaret ama yine de (Raylar 4.2.7 kullanarak) aynı hata kaldırdı. Sorun, "env" deki eksik uygulama sırlarıydı. İlk satırı aşağıdaki ile çalıştı: 'ActionDispatch :: Request.new (Rails.application.env_config.merge (env))'. – jeffcarbs