---
name: "login"
mode: "kit"
versionRequirements:
  - { name: "MiniKit", version: "2.3.2" }
platform:
  - "iOS"
  - "Android"
async: true
---

## login

> [VERSION] MiniKit >= 2.3.2

> [PLATFORM] iOS, Android

> ⚡ **Supports Promise** — Returns a Promise when success / fail / complete callbacks are omitted.

### Description

Call the API to get a login credential (code). Use the credential to exchange for user session information, including the user's unique ID in the current Mini Program (openid) and the unique ID under the IoT account (unionid).

### Parameters

| Property | Type | Required | Default | Since | Description |
| --- | --- | --- | --- | --- | --- |
| `timeout` | `number` | No | - | `2.3.2` | Timeout, in ms |
| `complete` | `() => void` | No | - | - | Callback invoked when the API call completes (regardless of success or failure) |
| `success` | `(params: Object) => void` ↓see below | No | - | - | Callback invoked when the API call succeeds |
| `fail` | `(params: Object) => void` ↓see below | No | - | - | Callback invoked when the API call fails |

#### success callback parameters

| Property | Type | Since | Description |
| --- | --- | --- | --- |
| `code` | `string` | `3.2.0` | User login credential (valid for 5 minutes) |

#### fail callback parameters

| Property | Type | Description |
| --- | --- | --- |
| `errorMsg` | `string` | Error message |
| `errorCode` | `string \| number` | Error code |
| `innerError` | `Object` | Error extension |

##### fail(params).innerError properties

| Property | Type | Description |
| --- | --- | --- |
| `errorCode` | `string \| number` | Extended error code |
| `errorMsg` | `string` | Extended error information |


### Examples

```tsx
ty.login({
  timeout: 5000,
  success: data => { console.log(data); },
  fail: error => { console.error(error); },
});
```
