Instalar el SDK
El SDK oficial es @vimine/sdk: TypeScript, ESM, sin dependencias (usa fetch y WebCrypto). El punto de
entrada del navegador pesa unos 7 kB comprimido.
npm install @vimine/sdkpnpm add @vimine/sdkyarn add @vimine/sdkPuntos de entrada
Sección titulada «Puntos de entrada»| Import | Qué contiene | Dónde |
|---|---|---|
@vimine/sdk |
Vimine (Iniciar sesión con Vimine + API de socios), publicApi, VimineError, los tipos |
navegador; también Node, con un almacenamiento propio |
@vimine/sdk/react |
VimineProvider, useVimine, SignInButton |
React ≥ 18 (dependencia peer opcional) |
@vimine/sdk/server |
VimineServer (clientes confidenciales, client_credentials, sandbox) |
Node ≥ 18 — nunca en un navegador |
import { Vimine, publicApi, VimineError } from '@vimine/sdk';import { VimineServer } from '@vimine/sdk/server';import { VimineProvider, useVimine, SignInButton } from '@vimine/sdk/react';Requisitos
Sección titulada «Requisitos»- Navegador:
fetch,crypto.subtle(WebCrypto) ysessionStorage/localStorage— cualquier navegador moderno. Las páginas deben servirse porhttps(ohttp://localhosten desarrollo): WebCrypto no está disponible en orígenes no seguros. - Node: 18 o posterior (
fetchyglobalThis.cryptonativos). - Bundler: cualquiera (Vite, webpack, esbuild, …) o
<script type="module">con un bundle propio. El paquete es solo ESM. - TypeScript: los tipos están incluidos; no hay que añadir ningún
@types/*.
El primer inicio de sesión
Sección titulada «El primer inicio de sesión»import { Vimine } from '@vimine/sdk';
const vimine = new Vimine({ clientId: 'vmc_…', // de la consola Desarrolladores redirectUri: 'https://www.example.org/vimine/callback', // registrado para el cliente scopes: ['profile:read', 'membership:read']});
document.querySelector('#sign-in').addEventListener('click', () => vimine.signIn());const result = await vimine.handleRedirect(); // intercambia el código, guarda la sesiónif (result) { const me = await vimine.me.get(); console.log(`Hola, ${me.first_name}`);}Sigue con Iniciar sesión con Vimine para el flujo completo, la sesión y el cierre de sesión.