1Incluye el SDK
Un solo archivo, sin dependencias.
<script src="https://neojaus.com/sdk/neojaus-auth.js"></script>
2Inicialízalo con tu aplicación
Estos son los valores que recibe NeoJausAuth.init(). Solo clientId, redirectUri y scope son obligatorios; baseUrl y apiUrl ya apuntan a producción si no los mandas.
El identificador de tu aplicación: nja_ más 20 caracteres. Te lo damos al registrarla. Es público, puede ir en tu página.
La dirección a la que vuelve la ventana después de aprobar. Debe ser exactamente una de las que registraste (https://, sin #). En esta demo es esta misma página.
Los permisos que pides, separados por espacios: profile, agency, properties:read, agency.properties:read, agency.properties:write. Los de agency.properties solo los puede dar un administrador de la inmobiliaria, y la persona puede conceder menos de lo que pides: lee siempre el scope de la respuesta. Qué permite cada uno.
Dónde vive la ventana de autorización de NeoJaus. En producción es https://neojaus.com, el valor por defecto. Cámbialo solo para probar contra un frontend local.
Dónde viven /oauth/token y el API de propiedades. En producción es https://api.neojaus.com, el valor por defecto; con un backend local, http://localhost:5002/public.
Márcalo solo si registramos tu aplicación como pública. Si tienes servidor, déjalo sin marcar: recibes code y codeVerifier, y tu servidor los cambia por tokens con tu client_secret.
3Muestra el botón
Al hacer clic se abre una ventana de NeoJaus. Si la persona no tiene sesión, inicia sesión ahí mismo; luego elige la inmobiliaria y presiona «Autorizar».
NeoJausAuth.renderButton(document.getElementById("neojaus-button"));
4Recibe el código
Aplicación con servidor: manda code y codeVerifier a tu backend, que los cambia por tokens junto con tu client_secret. El código vale 10 minutos y se usa una sola vez.
(todavía nada)
5Tokens en el navegador solo aplicaciones públicas
Con authorize({ exchange: true }) el SDK llama a /oauth/token con un formulario (application/x-www-form-urlencoded, sin cookies) y guarda los tokens en memoria. Los renueva antes de que venzan.
(todavía nada)
6Llama a la API
NeoJausAuth.fetch(path) agrega el Authorization: Bearer …. Prueba con /oauth/userinfo: quién aprobó y, con el permiso agency, su inmobiliaria.
(todavía nada)