5

Nhóm của tôi sắp sửa kết thúc một sự thay đổi lớn về hệ thống của chúng tôi và sẵn sàng thực hiện công tắc lớn.Duy trì Cookie khi chuyển đổi các trường hợp EC2 Ruby on Rails

Hiện tại, chúng tôi được lưu trữ trên AWS bằng cách sử dụng IP đàn hồi. Ngăn xếp của chúng tôi là Ruby on Rails và chúng tôi đang sử dụng capistrano.We cũng có một ứng dụng blackberry và một ứng dụng iPhone trực tiếp và trong tay của khách hàng. Việc xác thực giữa các ứng dụng và máy chủ là thông qua cookie và không phải bất kỳ loại khóa xác thực nào.

Tôi biết rằng đây không phải là cách tốt nhất để có xác thực, nhưng mã cũ là thừa kế.

Vì bản chất của công ty và dịch vụ của chúng tôi, nó là MỆNH LỆNH khi chúng tôi chuyển đổi, người dùng không đăng xuất và phiên được chuyển qua cookie từ ứng dụng di động đến máy chủ được vinh danh.

Tôi đã thử các cách tiếp cận sau:

Chỉ DNS đến một IP khác. Chỉ IP đàn hồi vào một cá thể AWS khác.

Trong mỗi trường hợp, các cookie dường như không được tôn trọng.

Tôi là nhà phát triển chứ không phải là sysadmin và đã hết ý tưởng. Có anyway để làm cho một ví dụ mới danh dự cookie bằng cách sử dụng Devise trên Rails hoặc thông qua AWS? Hoặc một tùy chọn khác mà tôi nên xem xét?

+1

Bạn có đang thay đổi tên miền trong khi chuyển đổi này không? –

+0

Bạn đã bao giờ sửa nó chưa? – bschaeffer

Trả lời

3

Cookie HTTP không chứa bất kỳ thông tin nào liên quan đến địa chỉ IP dịch vụ. Chúng được gắn với tên miền (hoặc gốc của tên miền phụ) và một đường dẫn. Vì vậy, bạn có thể thay đổi địa chỉ IP dịch vụ tất cả những gì bạn muốn, miễn là tên miền vẫn giữ nguyên. Trong trường hợp của bạn, cả hai giải pháp đều hợp lệ - bạn có thể di chuyển địa chỉ IP hoặc chỉ thay đổi giá trị IP của bản ghi DNS. Điều đó là đủ để giữ cho người dùng đăng nhập.

Câu hỏi quan trọng, nhắc nhở là - bạn lưu dữ liệu phiên ở đâu? Bạn sử dụng cửa hàng phiên nào trong Rails? Có thể, rằng bạn đã không di chuyển dữ liệu phiên vào môi trường thử nghiệm của bạn, do đó khách hàng đã đăng xuất.

Lưu trữ phiên mặc định cho Rails là kho lưu trữ cookie (dữ liệu phiên được giữ ở phía máy khách), vì vậy nó sẽ "chỉ hoạt động" trong trường hợp của bạn miễn là secret_token của bạn trong Ứng dụng vẫn giữ nguyên. Có lẽ đã được tái sinh trong quá trình triển khai? Nó có thể là giá trị kiểm tra ra (config/initializers/secret_token.rb) Mã thông báo này được sử dụng để đăng nhập các tập tin cookie để đảm bảo rằng khách hàng đã không thay đổi chúng.

Đảm bảo tất cả các điểm đó hợp lệ trong trường hợp của bạn và kiểm tra lại quá trình thử nghiệm của bạn, vì nó chỉ hoạt động mà không có bất kỳ hành động bổ sung nào.

+1

Mã thông báo bí mật giống nhau. Tôi khá chắc chắn các phiên đã được di chuyển là tốt, nhưng tôi sẽ tăng gấp đôi kiểm tra. Nếu nó hoạt động, tôi sẽ cho bạn biết. – user2320166

+0

Kiểm tra trong trình duyệt của bạn giá trị của cookie phiên (chỉ là bản gốc được mã hóa base64 của nó). Điều đó có thể mang lại một số manh mối bổ sung. – mdrozdziel

Các vấn đề liên quan