> ## Documentation Index
> Fetch the complete documentation index at: https://help.ship.uniuni.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 身份验证

> 使用JWT访问令牌进行UniUni合作伙伴API身份验证

合作伙伴API使用基于JWT的身份验证。这与客户端API是分开的——您需要合作伙伴API密钥才能访问这些端点。

**基础URL：** `https://api.ship.uniuni.com/partner`

## 第1步：获取访问令牌

通过调用身份验证端点，用您的API密钥换取JWT访问令牌。

<Note>
  访问令牌有效期为**24小时**。请存储令牌并重复使用，直到过期。
</Note>

### 请求

```
GET /auth/token
```

| 请求头         | 值           |
| ----------- | ----------- |
| `X-API-Key` | 您的合作伙伴API密钥 |

### 响应

```json theme={null}
{
  "success": true,
  "message": "Get token successfully",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs..."
  }
}
```

### 错误响应

<Tabs>
  <Tab title="缺少API密钥">
    ```json theme={null}
    {
      "success": false,
      "message": "Missing API Key"
    }
    ```
  </Tab>

  <Tab title="令牌生成错误">
    ```json theme={null}
    {
      "success": false,
      "message": "Error generating API token"
    }
    ```
  </Tab>
</Tabs>

### 示例

```bash theme={null}
curl -X GET https://api.ship.uniuni.com/partner/auth/token \
  -H "X-API-Key: your_api_key_here"
```

## 第2步：使用访问令牌

在所有后续API调用中，在`Authorization`请求头中包含JWT令牌。

```
Authorization: Bearer <accessToken>
```

### 示例

```bash theme={null}
curl -X GET "https://api.ship.uniuni.com/partner/track?trackingId=UR12345678901234567" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
```

## 身份验证错误代码

| 错误代码                | 描述                    |
| ------------------- | --------------------- |
| `MissingTokenError` | 未提供`Authorization`请求头 |
| `ExpiredTokenError` | JWT访问令牌已过期——请重新获取     |
| `InvalidTokenError` | 令牌格式错误或API密钥无效        |
| `TokenPayloadError` | 令牌载荷无法解码              |

### 错误响应示例

```json theme={null}
{
  "success": false,
  "message": "Missing API Key"
}
```
