Estoy interesado en cómo implementar OAuth en React usando popup ( window.open
).
Por ejemplo tengo:
mysite.com
- Aquí es donde abro la ventana emergente.passport.mysite.com/oauth/authorize
- surgir.
La pregunta principal es cómo crear una conexión entre window.open
(ventana emergente) y window.opener
(como se conoce, el window.opener es nulo debido a la seguridad entre dominios, por lo tanto, ya no podemos usarlo).
⇑
window.opener
se elimina cada vez que navega a un host diferente (por razones de seguridad), no hay forma de evitarlo. La única opción debería ser hacer el pago en un marco si es posible. El documento superior debe permanecer en el mismo host.
Esquema:
Soluciones posibles:
- Verifique una ventana abierta usando la que se
setInterval
describe aquí . Uso de almacenamiento cruzado (no vale la pena en mi humilde opinión).
Entonces, ¿cuál es el mejor enfoque recomendado en 2019?
Contenedor para reaccionar: https://github.com/Ramshackle-Jamathon/react-oauth-popup
localStorage
, pero solo funciona para el mismo dominio, por lo que no funciona en mi condición
window.opener
después de redirigir de nuevo a nuestro dominio, pero este no es el caso
setInterval
podría utilizarse como reserva para localStorage