Tengo un sitio web que tiene una base de datos para los usuarios. Al acceder a cierta parte de mi sitio web, el ticket sso se muestra en la url, porque la única forma de conectarse a un componente de mi sitio web es realizar la solicitud de url seguida de /?sso={{player.auth_ticket}} . Esto obtiene el SSO de la base de datos. Si por casualidad alguien obtiene el sso al verlo en la URL, puede usarlo para suplantar a los usuarios iniciando sesión con sus cuentas.
Los desarrolladores del proyecto me dijeron (el sitio web es mío pero el proyecto es de código abierto) que use un iframe. De esa manera no se mostrará el sso. El problema es que cuando se usa un iframe, el componente mencionado anteriormente no puede obtener el sso, incluso si agrego /?sso={{player.auth_ticket}} a la url.
Entonces volví a preguntar y alguien me dijo que hiciera una solicitud a mywebsite.com/api/ssoticket para obtener el SSO y agregarlo al iframe. Esto es lo que he hecho hasta ahora:
Presionar un botón en mi sitio web conduce a este html:
<html> <head> <title>My Website</title> </head> <body> <iframe src="https://mywebsite.com/directory/?sso={{player.auth_ticket}}" style="border:0px #ffffff none;" name="" scrolling="no" frameborder="0" marginheight="0px" marginwidth="0px" height="100%" width="100%" allowfullscreen></iframe> </body> <html>Como dije, agregar la solicitud sso al enlace iframe no funciona. Siguiendo los consejos de los desarrolladores, traté de crear un archivo .js que realiza una solicitud a la API de SSO, pero no conozco javascript, así que solo pude hacer lo que encontré en Google.
Ir a https://mywebsite.com/api/ssoticket devuelve una página en blanco con este texto:
{"status":"success","ticket":"5099crandomNumbersAndLettersa03efnotARealSSOd163e820"}Encontré un tutorial para hacer una solicitud a una API en google y creé este archivo .js:
const userAction = async () => { const response = await fetch ('https://mywebsite.com/api/ssoticket'); const ssoTicket = response.json();}
Pero no sé qué más puedo hacer, ya que no sé cómo agregar los datos de respuesta a la URL en el iframe. La idea es obtener el sso y agregarlo al href. Algo como /?sso=api_sso_response_data
Cualquier ayuda es apreciada