Sinatra không bền bỉ phiên của tôi bằng chuyển hướng trên Chrome. Nó đang tạo một phiên hoàn toàn mới và tôi đang mất tất cả dữ liệu phiên trước đó của mình.Phiên bản Sinatra không bền bỉ với chuyển hướng trên Chrome
Như một ví dụ (tương tự như the Sinatra docs), tôi đang làm một cái gì đó như thế này:
enable :sessions
get '/foo' do
session[:user_id] = 123
session[:session_id] # "ABC", for example
redirect to('/bar')
end
get '/bar' do
# this is "DEF" when responding to Chrome (wrong),
# but "ABC" when responding to Firefox or Safari (right)
session[:session_id]
# this is nil when responding to Chrome (wrong),
# but 123 when responding to Firefox or Safari (right)
session[:user_id]
end
Tôi nghĩ điều này có cái gì để làm với cách thức trình duyệt khác nhau đáp ứng xử lý phiên sau khi chuyển hướng phản ứng. Có ai nhìn thấy một cái gì đó tương tự như thế này, hoặc có bất kỳ ý tưởng về cách giải quyết này trong khi vẫn đang sử dụng phiên?
Cảm ơn trước!
Xử lý phiên mặc định trong sinatra được thực hiện bằng cookie, vì vậy tôi đoán điều này có liên quan đến cách xử lý chrome (hoặc từ chối xử lý) Yêu cầu đặt cookie trên chuyển hướng. Bạn không chắc chắn làm thế nào bạn có thể đối phó với điều đó, nhưng một cách đơn giản xung quanh toàn bộ vấn đề sẽ là sử dụng db dựa trên phiên, hoặc trong phiên làm việc với redis hoặc một cái gì đó tương tự. – Jonah
Môi trường của bạn là gì? Tôi vừa giải quyết một vấn đề liên quan đến việc lưu trữ phiên biến mất có thể là sự quan tâm, nhưng điều đó phụ thuộc vào nơi/làm thế nào điều này đang xảy ra với bạn. –
Tôi gặp vấn đề tương tự, sử dụng dàn dựng làm môi trường. –