跳到內容

安裝 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 登入,瞭解完整流程、工作階段和登出。