跳转到内容

安装 SDK

查看 Markdown

官方 SDK 是 @vimine/sdk:TypeScript、ESM、零依赖(使用 fetch 和 WebCrypto)。浏览器入口压缩后约 7 kB。

终端窗口
npm install @vimine/sdk
导入路径 包含内容 运行环境
@vimine/sdk Vimine(使用 Vimine 登录 + 会员 API)、publicApi、VimineError、类型定义 浏览器;配合您自己的存储也可用于 Node
@vimine/sdk/react VimineProvider、useVimine、SignInButton React ≥ 18(可选的 peer dependency)
@vimine/sdk/server VimineServer(机密客户端、client_credentials、沙盒) Node ≥ 18——绝不能用于浏览器
browser
import { Vimine, publicApi, VimineError } from '@vimine/sdk';
server
import { VimineServer } from '@vimine/sdk/server';
React
import { VimineProvider, useVimine, SignInButton } from '@vimine/sdk/react';
  • 浏览器:fetch、crypto.subtle(WebCrypto)以及 sessionStorage/localStorage——所有现代浏览器都支持。页面必须通过 https 提供(开发时可用 http://localhost):在不安全的来源上无法使用 WebCrypto。
  • Node:18 或更高版本(原生 fetch 和 globalThis.crypto)。
  • 打包工具:任意(Vite、webpack、esbuild 等),或配合您自己的打包产物使用 <script type="module">。该软件包仅提供 ESM。
  • TypeScript:已内置类型定义;无需另外添加 @types/*。
app.js
import { Vimine } from '@vimine/sdk';
const vimine = new Vimine({
clientId: 'vmc_…', // 来自“开发者”页面
redirectUri: 'https://www.example.org/vimine/callback', // 已为该客户端登记
scopes: ['profile:read', 'membership:read']
});
document.querySelector('#sign-in').addEventListener('click', () => vimine.signIn());
callback.js
const result = await vimine.handleRedirect(); // 交换授权码,保存会话
if (result) {
const me = await vimine.me.get();
console.log(`您好,${me.first_name}`);
}

接下来请阅读使用 Vimine 登录,了解完整流程、会话和退出登录。