# Admin

## admin\_auth

Create an RPC session token to be used as the authorization token for request to private JSON-RPC API endpoints.&#x20;

**Parameters**

| Argument | Type   | Description       |
| -------- | ------ | ----------------- |
| username | String | The RPC username. |
| password | String | The RPC password. |

**Curl Example:**&#x20;

```bash
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_auth", "params": { "username": "myuser", "password":"mypass" } ,"id":21}'
```

#### Console Example

```javascript
> admin.auth({
    "username": "myuser",
    "password": "mypass"
})
```

#### Returns:

&#x20;`String` - JSON Web Token

#### Output:

```javascript
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDE4LTExLTEwVDE0OjQyOjU4LjUwNDI2MjQ2MyswMTowMCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.u02jMZ-VShh6Jp18tbvxCJ1KWv6fIGXky8hh7vbgDrc"
}
```

## admin.login

Authenticates the current console session to allow private RPC APIs to be called from the console environment. Internally, it acquires a session via `admin_auth` endpoint, caches the session token and sets it on every JSON-RPC requests.&#x20;

**Parameters**

| Argument | Type   | Required | Description       |
| -------- | ------ | -------- | ----------------- |
| username | String | True     | The RPC username. |
| password | String | False    | The RPC password. |

{% hint style="info" %}
If the `password` argument is omitted, an interactive session is started to collect the password. This is the recommended approach.
{% endhint %}

#### Console Example

```javascript
> admin.login("myuser", "mypass")
```

#### Returns:

&#x20;`String` - JSON Web Token

#### Output:

```javascript
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDE4LTExLTEwVDE0OjQyOjU4LjUwNDI2MjQ2MyswMTowMCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.u02jMZ-VShh6Jp18tbvxCJ1KWv6fIGXky8hh7vbgDrc"
}
```
