# 登录 Widget 使用指南 ## 概述 登录 Widget 是一个轻量 Headless SDK(0.8KB),通过 `login()` 函数调用 New API 登录接口。不注入任何 DOM 或样式,你完全控制 UI。 **仅支持密码登录。** --- ## 快速开始 ```html ``` --- ## API 参考 ### `NewApiLoginWidget.login(options)` | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | `apiUrl` | `string` | 是 | New API 服务地址 | | `username` | `string` | 是 | 用户名或邮箱 | | `password` | `string` | 是 | 密码 | **返回值:** `Promise<{ success: boolean, data?: object, message?: string }>` 成功: ```json { "success": true, "data": { "id": 1, "username": "user", "display_name": "用户", "role": 1, "status": 1, "group": "default" } } ``` 失败: ```json { "success": false, "message": "用户名或密码错误,或用户已被封禁" } ``` ### data 字段 | 字段 | 类型 | 说明 | |------|------|------| | `id` | number | 用户 ID,调用其他 API 时需要 | | `username` | string | 用户名 | | `display_name` | string | 显示名称 | | `role` | number | 角色(1=普通,10+=管理员,100+=超管) | | `status` | number | 状态 | | `group` | string | 用户组 | --- ## 登录后调用其他 API 登录成功后浏览器会自动存储 session cookie,后续请求带 `credentials: 'include'` 和 `New-Api-User` 头即可。 ### 获取用户信息 ```js const res = await fetch('https://lancerouter.ai/api/user/self', { credentials: 'include', headers: { 'New-Api-User': String(result.data.id) } }); const data = await res.json(); ``` ### 创建 API Token ```js const res = await fetch('https://lancerouter.ai/api/token/', { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json', 'New-Api-User': String(result.data.id) }, body: JSON.stringify({ name: 'my-token', remain_quota: 1000000, unlimited_quota: false }) }); const data = await res.json(); ``` ### 完整示例 ```html