JSON Web Jetonu girişini aldım ancak Rails 5 Denetleyici testlerimi gerçekleştirme aşamasındayım.Raylar 5 set Yetkilendirme başlığı
JWT auth jetonumu GET istek başlığma iletmeye çalışıyorum.
test "users should return list of users" do
User.create(@bob)
auth_token = log_in_as(@bob)
request.headers['Authorization'] = "JWT #{auth_token}"
get users_path
assert_response :success
assert_not response.body.empty?
end
Şimdiye kadar çalışmadığını, ben cevabı not authenticated
olsun:
Şimdiye kadar, benim Kullanıcı Kontrol testinde, bu test var.
Öyle mi bunu değiştirirseniz:
test "users should return list of users" do
User.create(@bob)
auth_token = log_in_as(@bob)
get users_path, nil, { HTTP_AUTHORIZATION: "JWT #{auth_token}" }
puts "response = #{response.body}"
assert_response :success
assert_not response.body.empty?
end
Bu beklenen yanıt almak:
response = {"users":[{"id":298486374,"name":"MyString","email":"MyString","cats":[]},{"id":980190962,"name":"MyString","email":"MyString","cats":[]},{"id":980190963,"name":"Bob","email":"[email protected]","cats":[]}]}
ama ben de bir DEPRECATED UYARI olsun:
kullanımdan kaldırılması UYARI: ActionDispatch :: IntegrationTest HTTP isteği yöntemleri, ileride'de yalnızca aşağıdaki anahtar kelime bağımsız değişkenlerini kabul edecektirRaylar sürümleri: parametreler, başlıklar, env, xhr
Örnekler:
olsun '/ profile parametreleri: {id: 1}, başlıklar: { 'X-Ekstra-Başlık'=> '123 '}, env: { 'action_dispatch.custom'=> 'özel'}, xhr: true
Yani Raylar 5 HTTP Yetkilendirme başlığı ayarlamak için önerilen yolu nedir?
'request.headers ['HTTP_AUTHORIZATION'] =" JWT # {auth_token} "işlevini kullanmadı. Başlıklar: {...} 'metodu çalışır. – Zhang
': headers' anahtar sözcüğü argümanını kullanmak benim istek özelliklerimde çalışır, fakat benim denetleyici özelliklerimde 'request.headers' işlevini değiştirmek zorundayım. – Dennis