সাফারি ফ্ল্যাট আউট আপনাকে অভিভাবক ডোমেনের চেয়ে আলাদা ডোমেনের আইফ্রেমে কুকিজ সেট করতে দেয় না, সার্ভার-সাইড সিওআরএস শিরোনাম নিন্দিত হতে পারে।
স্পষ্ট করার জন্য: ব্যবহারকারী ডোমেনএ.কম এ আছেন। ডোমেইনবি.কমের জন্য একটি আইফ্রেম উন্মুক্ত এবং আইফ্রেমের অভ্যন্তরে ডোমেনবি.কমের ব্যবহারকারীকে প্রমাণীকরণের চেষ্টা করে। সেট-কুকির শিরোনামটি ডোমেন বি ডটকমের ভিতরে সার্ভার থেকে সমস্ত আইটেমের সাথে যদি ইফ্রেমে ফিরে আসে তবে সাফারি এটি পরবর্তী কলগুলিতে ফিরে পাঠাচ্ছে না।
একজন পুরানো কর্মচারী ইফ্রামের কাছ থেকে একটি ফর্ম জমা দিচ্ছিল এবং প্রতিক্রিয়ার মধ্যে কুকি সেট করছিল। আমি অনুমান করি যে তারা ফর্মটি জমা দেওয়ার জন্য কোনও কিছুর উপর ক্লিক করছিল এ বিষয়টি তারা পছন্দ করেছেন। প্রতিক্রিয়া কখন ফিরে এসেছে তা দেখার জন্য আপনাকে কুকির জন্য পোল করতে হবে, ফর্ম জমা দেওয়ার কোনও কলব্যাক নেই, এবং এইচটিটিপি কেবল কুকিগুলির ক্ষেত্রে আপনি এটি করতে পারেন নি, আরে, এটি কাজ করেছিল! না হওয়া পর্যন্ত।
তারপরে, আরও সাম্প্রতিক কাজটি ব্যবহারকারীকে একেবারে নতুন উইন্ডো / ট্যাবে আইফ্রেমে ডোমেনে পুনঃনির্দেশ করছিল, সেখানে একটি এলোমেলো কুকি সেট করছে এবং সেই মুহুর্ত থেকে সেই সাবডোমেনটি আইফ্রেমের অভ্যন্তরে "বিশ্বাসযোগ্য" ছিল। আবার নতুন উইন্ডো / ট্যাবটি খোলার জন্য এটিতে ক্লিকের প্রয়োজন ছিল এবং নতুন ট্যাবটি খোলার দৃশ্য চিত্রও ছিল। অনেক সুরক্ষা, যেমন মান।
এবং এখন, সাফারি 13 হিসাবে - আর কার্যকারিতা নেই। আর কোনো নিরাপদ আইফ্রেম কুকি সেটিং 🤬
অন্য কোনও প্রমাণীকরণের স্কিম আমাদের পক্ষে ভাল নয় (যেমন আথ-এক্স শিরোনাম)। আমাদের একটি এইচটিপিপি কেবলমাত্র সুরক্ষিত কুকি ব্যবহার করা দরকার, কারণ আমরা চাই না যে টোকনটি কোনওভাবেই জাভাস্ক্রিপ্ট ক্লায়েন্ট-সাইডের দ্বারা অ্যাক্সেসযোগ্য হোক।
পরিষ্কার হয়ে উঠতে, অন্য যে কোনও ব্রাউজারে সবকিছু দুর্দান্ত কাজ করে।
যে কেউ কোন পরামর্শ আছে?
সম্পাদনা:
@Tomschmidt লিঙ্কের জন্য ধন্যবাদ, এটি সঠিক দিকের মতো বলে মনে হচ্ছে। আমি অ্যাপলের স্টোরেজ অ্যাক্সেস এপিআই ব্যবহার করার চেষ্টা করেছি, তবে দুর্ভাগ্যক্রমে, যদিও আমি এপিআই দিয়ে আমার লগইন যুক্তি শুরুর আগে অ্যাক্সেসের জন্য অনুরোধ করার বিষয়টি নিশ্চিত করছি:
requestStorageAccess = async() => {
return new Promise(resolve => {
//@ts-ignore
document.requestStorageAccess().then(
function () {
console.log('Storage access was granted');
resolve(true);
},
function () {
console.log('Storage access was denied');
resolve(false);
}
);
});
}
const storageAccessGranted = await requestStorageAccess();
console.log(storageAccessGranted) // prints 'true'
await login();
তবুও, / লগইন এপিআই প্রতিক্রিয়াতে প্রাপ্ত কুকিগুলি পরবর্তী কলগুলিতে এপিআইতে পাঠানো হচ্ছে না :(