@andco/sdk-script

El botón de Andco como elemento personalizado, sin paso de build.

html
<script type="module" src="https://unpkg.com/@andco/sdk-script/andco.js"></script>

El módulo registra <andco-button> al cargarse. No hay paso de registro ni configuración global.

andco-button

html
<andco-button
  client-id="tu-client-id"
  redirect-to="https://tuapp.com/"
  scopes="openid email profile"
></andco-button>

Atributos

Atributo Qué es
client-id el cliente OAuth. Obligatorio
redirect-to la URL registrada de retorno. Obligatorio
scopes separados por espacios
flow authorization o intent
locale etiqueta BCP 47
theme-mode light, dark o system
disabled, busy estado visual
endpoint-auth, endpoint-api, endpoint-widget para apuntar a otro entorno

Todos son observados: cambiarlos en vivo reconfigura el botón.

Eventos

Evento Cuándo
andco-ready la superficie hospedada quedó lista
andco-activate la persona activó el control
andco-complete la autorización o el Intent terminaron
andco-dismiss la persona cerró la ventana
andco-error algo falló. El detalle lleva el error

El prefijo andco- existe para que estos eventos no choquen con los de tu página.

Propiedades

Lo que no es escalar no cabe en un atributo. Se asigna como propiedad, que es la división estándar en Web Components:

js
document.querySelector("andco-button").authorization = {
  scopes: ["openid", "email"],
  authorizations: [{ resourceServerId: "bank", resource: "https://bank.andco.cl" }],
};

andcoSessionFor

ts
andcoSessionFor(element: AndcoButtonElement): AndcoSession | null | undefined

La sesión de la instancia que ese elemento usa, con los tres estados de siempre.

andcoInstance

ts
andcoInstance(options: Record<string, unknown>): AndcoSessionClient

La instancia que corresponde a una configuración, para cuando necesitas llamar a la API desde la misma página.

Varios elementos que declaran la misma configuración resuelven la misma instancia. Es deliberado: son el mismo cliente OAuth en la misma página, y varias instancias significarían varias sesiones para una sola persona.

Cuándo no usar esto

Si tu proyecto tiene un bundler, usa @andco/sdk o el paquete de tu framework: tendrás tipos, los errores aparecerán al compilar y no cargarás el elemento personalizado.