安装 SDK
官方 SDK 是 @vimine/sdk:TypeScript、ESM、零依赖(使用 fetch 和 WebCrypto)。浏览器入口压缩后约 7 kB。
npm install @vimine/sdkpnpm add @vimine/sdkyarn add @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——绝不能用于浏览器 |
import { Vimine, publicApi, VimineError } from '@vimine/sdk';import { VimineServer } from '@vimine/sdk/server';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/*。
第一次登录
章节“第一次登录”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());const result = await vimine.handleRedirect(); // 交换授权码,保存会话if (result) { const me = await vimine.me.get(); console.log(`您好,${me.first_name}`);}接下来请阅读使用 Vimine 登录,了解完整流程、会话和退出登录。