6

Tôi có tên miền phụ blog hoạt động tốt, tuy nhiên, đăng nhập được tách ra khỏi tất cả tên miền phụ và do đó, nếu người dùng đăng nhập cookie của mình chỉ hợp lệ trên các trang không phải tên miền phụ. Tôi làm cách nào để đặt ứng dụng của mình làm cho cookie hợp lệ trong tất cả các tên miền phụ và các trang bình thường?Chia sẻ một cookie duy nhất thông qua các tên miền phụ

Tôi đã làm việc thông qua chủ đề này: Share session (cookies) between subdomains in Rails? nhưng rất tiếc là không thành công. Tôi thậm chí đã cố gắng mà bước dài bằng cách tiếp cận bước middleware giá nhưng thành công wihtout.

Tôi đang sử dụng Rails 3.2.13.

Bất kỳ trợ giúp nào được đánh giá cao! :)

+0

chuyển miền sẽ hoạt động ... bạn có chắc là bạn đang thử nghiệm chính xác không? – aguynamedloren

+0

bạn có thể giải thích về điều đó không? Tôi không quá kinh nghiệm với cookie, vv Hãy nhìn xem, điều này xảy ra khi người dùng đăng nhập: cookies [: remember_token] = user.remember_token. Một cookie tiêu chuẩn bình thường. Làm thế nào tôi có thể làm cho cookie này hoạt động với tất cả các tên miền phụ? –

+1

Bạn đã thử ': cookie_store,: key => '_your_app_session',: domain =>" .yourdomain.com "'? –

Trả lời

16

Tất cả những gì tôi cần làm là chỉ định tên miền khi tạo cookie, như đã nhận xét ở trên.

cookies[:remember_token] = { value: user.remember_token, domain: ".lvh.me" } 
1

Đặt domain: all vào cuối các dòng trong cấu hình của bạn/session_store.rb

ví dụ.

YourApp::Application.config.session_store :encrypted_cookie_store, key: '_yourapp_session', domain: :all 

Bạn cũng có thể cần phải thay đổi thông số này trong cấu hình của bạn/môi trường/production.rb

config.action_dispatch.tld_length = 2 

Nếu tên miền của bạn là example.com sau đó tld_length của bạn (Top Level Domain Length) là 1 (đó là mặc định). example.com.au là 2, 127.0.0.1.xip.io là 5, v.v.

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