إعداد ملفات تعريف الارتباط في القضبان مع المجال الخيار

StackOverflow https://stackoverflow.com/questions/1932058

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أحاول أن تعيين ملف تعريف الارتباط في مجال واحد من آخر.هل هذا ممكن ؟

هذا ما أفعله في التطبيق:

في وحدة تحكم اختبار العمل يتم الوصول إليها عبر هذا الرابط:

http://myapp.com/account/test

def test
  cookies[:foo] = {
    :value => 'something',
    :domain => 'myapp.heroku.com'
  }
end

في نفس وحدة تحكم ، test2 العمل يتم الوصول إليها عبر هذا الرابط:

http://myapp.heroku.com/account/test2

def test2 
  puts "foo=#{cookies[:foo]}"
end

ولكن قيمة الكوكيز[:فو] دائما فارغة.هل من الممكن الوصول إلى تعريف الارتباط من heroku.com المجال.ظننت إعداد :المجال الخيار سيسمح هذا.

شكرا

هل كانت مفيدة؟

المحلول

في :المجال خيار (تحديد المجال على ملفات تعريف الارتباط في العام) فقط يعمل حقا عبر النطاقات الفرعية.أيبالنسبة app1.mysite.com و app2.mysite.com - يمكنك تعيين ملف تعريف الارتباط المجال .mysite.com ويكون ذلك مشترك بين المجالات الفرعية.

هذا هو فقط كيف الكوكيز هي مصممة للعمل.myapp.com و myapp.heroku.com هي مجالات منفصلة ، وليس النطاقات الفرعية ، حتى محاولة تعيين المجال بهذه الطريقة لن تعمل.

هناك بعض الطرق لتحقيق الحقيقية عبر ملفات تعريف الارتباط المجال - ولكن هم المشاركة بدلا من ذلك.

نصائح أخرى

لا يمكنك أن تفعل هذا على مجال مختلف, ولكن يمكنك أن تفعل ذلك على المجالات الفرعية.لذا ، على سبيل المثال ، التطبيق يعمل على المجال example.com يمكن تعيين ملف تعريف ارتباط subdomain.example.com ولكن ليس exampleapp.com.

عندي إضافة إذا كان من الممكن تعيين ملفات تعريف الارتباط الأخرى التعسفي المجالات ، لن يكون هناك ضخمة الأمن/الخصوصية.

يمكنك تعيين نفس الكوكيز لجميع المجالات الخاصة بك عن طريق القيام بما يلي في البيئة.rb:

 ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_domain => '.mydomain.com']

انظر هنا للحصول على الوثائق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top