나는 내가 놀고있는 간단한 Sinatra 앱을 가지고 있는데, 어떤 이유로 쿠키가 특정 경로에서 작동하지 않는 것으로 보입니다.이 경로는 상당히 기괴합니다. 내가 쿠키에 가면 내가 쿠키에 가면시나 트라 쿠키가 특정 경로에서 사라집니다?
require "sinatra"
set(:authenticate) do |*vars|
condition do
unless request.cookies.has_key?("TestCookie")
redirect to("/login"), 303
end
end
end
get "/login" do
return "No valid cookie"
end
get "/secret", :authenticate => [:auth_cookie] do
cookie = request.cookies["TestCookie"]
return "Secrets ahoy - #{cookie}"
end
get '/cookie/set' do
response.set_cookie("TestCookie", {
:expires => Time.now + 2400,
:value => "TestValue"
})
return "Cookie is set"
end
get '/cookie/get' do
cookie = request.cookies["TestCookie"]
return "Cookie with value #{cookie}"
end
/제대로 (firecookie에서 볼 수 있음) 쿠키를 설정 설정 한 다음/I 올바른 쿠키 출력을 얻을 수. 그러나/secret에 가면 항상/login으로 리디렉션됩니다. 아직 Ruby 구문에 대해 상당히 익숙하기 때문에 인증 확장 프로그램 내 조건에 문제가있을 수 있다고 생각하여 쿠키를 제거하고 다른 쿠키처럼 쿠키를 뱉어 내 보았습니다. 그러나 아직 아무것도 없으므로 쿠키가있는 이유를 놓치지 않고 브라우저에서 볼 수 있습니다 ... 쿠키는 작동하지만 비밀은 않습니다.
Am I 여기 뭔가가 없어?
아 말하기를, 경로를 생략하면 루트 수준에 놓이게 될 것이라고 생각했지만 모두 의미가 있습니다. 고마워! – Grofit