Tôi quan tâm đến cách triển khai OAuth trong React bằng popup ( window.open
).
Ví dụ tôi có:
mysite.com
- đây là nơi tôi mở cửa sổ bật lên.passport.mysite.com/oauth/authorize
- cửa sổ bật lên.
Câu hỏi chính là làm thế nào để tạo kết nối giữa window.open
(cửa sổ bật lên) và window.opener
(như được biết window.opener là null do bảo mật tên miền chéo do đó chúng tôi không thể sử dụng nó nữa).
Bị
window.opener
xóa bất cứ khi nào bạn điều hướng đến một máy chủ khác (vì lý do bảo mật), không có cách nào xung quanh nó. Tùy chọn duy nhất nên thực hiện thanh toán trong một khung nếu có thể. Các tài liệu hàng đầu cần phải ở trên cùng một máy chủ.
Kế hoạch:
Phương pháp khả thi:
- Kiểm tra một cửa sổ mở bằng cách sử dụng
setInterval
mô tả ở đây . Sử dụng lưu trữ chéo (không đáng imho).
Vì vậy, cách tiếp cận được đề xuất tốt nhất trong năm 2019 là gì?
Trình bao bọc cho phản ứng - https://github.com/Ramshackle-Jamathon/react-oauth-popup
localStorage
, nhưng nó chỉ hoạt động cho cùng một tên miền nên nó không hoạt động trong điều kiện của tôi
window.opener
sau khi chuyển hướng trở lại miền của chúng tôi, nhưng đây không phải là trường hợp
setInterval
có thể được sử dụng làm dự phòng cho localStorage