Guías
Ver como MarkdownScript tag
El botón de Andco en una página sin paso de build, como elemento personalizado.
Cuando no hay bundler —una página estática, un CMS, una plantilla de servidor— @andco/sdk-script entrega el botón como elemento personalizado. Se configura con atributos y no hay ningún paso de registro.
<script type="module" src="https://unpkg.com/@andco/sdk-script/andco.js"></script>
<andco-button
client-id="tu-client-id"
redirect-to="https://tuapp.com/"
scopes="openid email profile"
></andco-button>Eso es todo: el elemento se registra solo, monta el iframe de Andco, abre la ventana emergente cuando la persona hace clic e intercambia el código al volver.
Atributos
| Atributo | Para qué |
|---|---|
client-id |
tu cliente OAuth. Obligatorio |
redirect-to |
la URL registrada de retorno. Obligatorio |
scopes |
separados por espacios |
flow |
authorization o intent |
locale |
etiqueta BCP 47, por ejemplo es-CL |
theme-mode |
light, dark o system |
disabled, busy |
estado visual |
endpoint-auth, endpoint-api, endpoint-widget |
solo para apuntar a otro entorno |
Varios elementos en la misma página que declaren la misma configuración comparten una sola instancia, y por lo tanto una sola sesión.
Escuchar el resultado
<script type="module">
const button = document.querySelector("andco-button");
button.addEventListener("andco-complete", () => location.reload());
button.addEventListener("andco-error", (event) => console.error(event.detail));
button.addEventListener("andco-dismiss", () => console.log("closed the window"));
</script>Los eventos llevan prefijo andco- para no chocar con los tuyos.
Leer la sesión
<script type="module">
import { andcoSessionFor } from "https://unpkg.com/@andco/sdk-script/andco.js";
const button = document.querySelector("andco-button");
button.addEventListener("andco-complete", () => {
const session = andcoSessionFor(button);
console.log(session?.user.email);
});
</script>Valores que no son escalares
Un atributo solo puede llevar texto. Lo que no es escalar —por ejemplo la contribución de autorización de un Resource Server— se asigna como propiedad, que es la división habitual en Web Components:
<script type="module">
document.querySelector("andco-button").authorization = {
scopes: ["openid", "email"],
authorizations: [{ resourceServerId: "bank", resource: "https://bank.andco.cl" }],
};
</script>Cuándo no usar esto
Si tu página tiene un bundler, usa @andco/sdk directamente o el paquete de tu framework: tendrás tipos, verás los errores al compilar y no cargarás el elemento personalizado.
