SORU
28 NİSAN 2013, Pazar


4 Özgünlük Token Raylar

Özgünlük token bazı sorunlarla karşılaştım yeni Raylar 4 uygulaması (Ruby 2.0.0-p0) üzerinde çalışıyordum.

Yazarken denetleyicisi yanıt veren json (kullanarak respond_to sınıf yöntemi) gitmem gerek create eylem ben başlarken ActionController::InvalidAuthenticityToken istisnalar çalıştım oluşturmak için bir kayıt kullanarak curl.

-H "Content-Type: application/json" kurdum ben -d "<my data here>" ile veri ama yine de hiç şans kurdum.

Aynı kumanda olursa olsun Raylar 3.2 (Ruby 1.9.3) ve özgünlük var token kullanma sorunları yazmaya çalıştım. Ve Raylar özgünlük belirteçleri 4 ile bazı değişiklikler olduğunu gördüm aradım. Anladığım kadarıyla, artık otomatik olarak formları artık sokuluyor? Bu şekilde HTML olmayan içerik türlerini etkiliyor sanırım.

HTML Formu istemek zorunda, özgünlük kapış token, token ile başka bir istekte bulunmadan bunları aşmanın bir yolu var mı? Ya da tamamen apaçık ortada olan bir şeyi mi Gözden kaçırıyorum?

Düzenleme:Ben sadece yeni Raylar 4 uygulaması yeni bir rekor değişen bir şey olmadan bir iskele oluşturma çalıştı ve benim yaptığım bir şey değil yani sanırım aynı sorunla karşılaştım.

CEVAP
28 NİSAN 2013, Pazar


Şimdi çözdüm sanırım. (Yeni) varsayılan olarak değiştirdim

protect_from_forgery with: :exception

için

protect_from_forgery with: :null_session

ApplicationController yorum başına.

# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.

request_forgery_protecton.rb ya da, daha spesifik olarak, aşağıdaki satırları için: kaynak bakarak farkı görebilirsiniz

Rails 3.2:

# This is the method that defines the application behavior when a request is found to be unverified.
# By default, \Rails resets the session when it finds an unverified request.
def handle_unverified_request
  reset_session
end

Rails 4:

def handle_unverified_request
  forgery_protection_strategy.new(self).handle_unverified_request
end

the following diyecek ki:

def handle_unverified_request
  raise ActionController::InvalidAuthenticityToken
end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • HowcastTechGadgets

    HowcastTechG

    22 EYLÜL 2010