ฉันสนใจที่จะใช้ OAuth ใน React โดยใช้ป๊อปอัพ ( window.open)
เช่นฉันมี:
mysite.com- นี่คือที่ฉันเปิดป๊อปอัพpassport.mysite.com/oauth/authorize- ป๊อปอัพ.
คำถามหลักคือวิธีการสร้างการเชื่อมต่อระหว่างwindow.open(ป๊อปอัพ) และwindow.opener(เนื่องจากเป็นที่รู้จักกันว่า window.opener นั้นเป็นโมฆะเนื่องจากความปลอดภัยข้ามโดเมนดังนั้นเราจึงไม่สามารถใช้งานได้อีกต่อไป)
⇑
window.openerจะถูกลบเมื่อใดก็ตามที่คุณนำทางไปยังโฮสต์อื่น (เพื่อเหตุผลด้านความปลอดภัย) ไม่มีวิธีแก้ไข ตัวเลือกเดียวควรทำการชำระเงินในเฟรมถ้าเป็นไปได้ เอกสารด้านบนต้องอยู่ในโฮสต์เดียวกัน
โครงการ:
การแก้ปัญหาที่เป็นไปได้:
- ตรวจสอบหน้าต่างที่เปิดใช้
setIntervalอธิบายไว้ที่นี่ ใช้cross-storage (ไม่คุ้มค่ากับมัน)
ดังนั้นวิธีที่ดีที่สุดที่แนะนำในปี 2019 คืออะไร?
แรปเปอร์สำหรับทำปฏิกิริยา - https://github.com/Ramshackle-Jamathon/react-oauth-popup
localStorageแต่มันใช้งานได้กับโดเมนเดียวกันเท่านั้นดังนั้นมันจึงใช้งานไม่ได้ในสภาพของฉัน
window.openerหลังจากเปลี่ยนเส้นทางกลับไปที่โดเมนของเรา แต่นี่ไม่ใช่กรณี


setIntervalสามารถใช้เป็นทางเลือกสำหรับ localStorage