Saltar al contenido principal

Regístrate con Oauth

En este ejemplo, demostramos cómo registrarse con Oauth

✅ Propósito del escenario:

  • El usuario se registra con un proveedor de OAuth (Google, Facebook, etc.)
  • Autenticar al usuario con el código de autorización de OAuth
  • Obtener los datos del usuario autenticado después de un flujo de OAuth exitoso

✅ Lo que necesitas:

  • Una PROJECT_URL y APP_TOKEN válidos para la autenticación con la API de OneEntry.
  • Credenciales del proveedor de OAuth (client_id y client_secret) de Google, Facebook u otro proveedor.
  • Código de autorización obtenido de la redirección del proveedor de OAuth.
  • redirect_uri configurado que coincida con el registrado en el proveedor de OAuth.

📌 Importante:

  • Estos ejemplos no incluyen manejo de errores.
  • Puedes gestionar errores utilizando un bloque try-catch o empleando una construcción como await Promise.catch((error) => error).
  • Asegúrate de que el formIdentifier utilizado en el método updateUser() coincida con el configurado en tu proyecto de OneEntry.

Escenario

1. Importar defineOneEntry desde el SDK y definir url y token

Ejemplo:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. Creando un cliente API con la función defineOneEntry()

Ejemplo:

const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Registro de usuario con AuthProvider.oauthSignUp()

Datos:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Ejemplo:

const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
Resultado:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.612Z",
"message": "Datos de permiso no encontrados. Proporciona el permiso para la URL solicitada",
"pageData": null
}

4. Autenticación de usuario con AuthProvider.oauthSignUp()

Datos:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Ejemplo:

const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
Resultado:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.792Z",
"message": "Datos de permiso no encontrados. Proporciona el permiso para la URL solicitada",
"pageData": null
}

5. Ahora puedes obtener los datos del usuario con Users.getUser()

Ejemplo:

const userData = await Users.getUser();

Ejemplo final

// 1. Importar defineOneEntry desde el SDK definir PROJECT_URL y APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Creando un cliente API:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Registro de usuario con AuthProvider.oauthSignUp()
const body = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000"
};
const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
// console.log(JSON.stringify(signUpResponse));

// 4. Autenticación de usuario con AuthProvider.oauthSignUp()
const authBody = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000"
};
const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
// console.log(JSON.stringify(authResponse));

// 5. Ahora puedes obtener los datos del usuario con Users.getUser()
const user = await Users.getUser().catch((e) => e);
// console.log(JSON.stringify(user));