es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Steam OpenId realm and returnUrl: Reino y URL de retorno de Steam OpenId

Estoy trabajando en una aplicación que utiliza node-steam-openid.

Lo importo de la siguiente manera: const SteamAuth = require("node-steam-openid");

Cuando creo el objeto SteamAuth, se requieren 3 parámetros: realm, returnUrl y apiKey:

const steam = new SteamAuth({
    realm: "https://example.net", // Nombre del sitio que se muestra a los usuarios al iniciar sesión
    returnUrl: "https://rest_site.net/test/api/auth/steam/authenticate", // Ruta de retorno
    apiKey: apiKey // Clave de la API de Steam
});

En este caso, returnUrl es una llamada a la API que activa mi función en el backend que realmente obtiene los datos del usuario y guarda el steamId en la base de datos.

El problema es que una vez que se abre la autenticación de Steam e ingreso las credenciales, me muestra un error genérico.


Lo primero que se me ocurrió es que returnUrl no debe ser una llamada a la API, así que cambié los parámetros del objeto SteamAuth de la siguiente manera:

const steam = new SteamAuth({
    realm: "https://example.net", // Nombre del sitio que se muestra a los usuarios al iniciar sesión
    returnUrl: "https://example.net/test_auth", // Ruta de retorno
    apiKey: apiKey // Clave de la API de Steam
});

Con estos nuevos parámetros, después de que la autenticación de Steam tiene éxito, me redirecciona correctamente a https://example.net/test_auth.

Me pregunto por qué no puedo insertar una llamada a la API como ruta de retorno después de que la autenticación de Steam tenga éxito.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no puedo replicar los problemas técnicos. Sin embargo, según la información proporcionada, parece que el problema se debe al hecho de que la returnUrl utilizada es una llamada a la API que dispara una función en el backend para obtener los datos del usuario y guardar el steamId en la base de datos. Es probable que el flujo de OpenID no esté diseñado para manejar llamadas a API como URLs de retorno.

    Para resolver este problema, la returnUrl debería ser una URL regular que devuelva una página estática en lugar de llamar a una API. Una vez completada la autenticación, el usuario puede ser redirigido a la página dinámica que activa la llamada a la API y recupera los datos del usuario. Alternativamente, se puede utilizar un paquete OpenID diferente que admita llamadas a API como URLs de retorno.

Comments are closed.