# Logins

## List bridge logins

`$client->bridges->logins->list(string bridgeID): LoginListResponse`

**get** `/v1/bridges/{bridgeID}/logins`

List bridge logins. A bridge login is a signed-in identity for a bridge and can contain one or more chat accounts.

### Parameters

- `bridgeID: string`

  Bridge ID.

### Returns

- `LoginListResponse`

  - `list<BridgeLogin> items`

### Example

```php
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

$client = new Client(accessToken: 'My Access Token');

$logins = $client->bridges->logins->list('local-whatsapp');

var_dump($logins);
```

#### Response

```json
{
  "items": [
    {
      "bridgeID": "bridgeID",
      "loginID": "loginID",
      "removeScopes": [
        "current-device"
      ],
      "status": "connected",
      "accountIDs": [
        "string"
      ],
      "statusText": "statusText",
      "user": {
        "id": "id",
        "cannotMessage": true,
        "email": "email",
        "fullName": "fullName",
        "imgURL": "imgURL",
        "isSelf": true,
        "phoneNumber": "phoneNumber",
        "username": "username"
      }
    }
  ]
}
```

## Get bridge login

`$client->bridges->logins->retrieve(string loginID, string bridgeID): BridgeLogin`

**get** `/v1/bridges/{bridgeID}/logins/{loginID}`

Get one bridge login.

### Parameters

- `bridgeID: string`

  Bridge ID.

- `loginID: string`

  Bridge login ID.

### Returns

- `BridgeLogin`

  - `string bridgeID`

    Bridge ID.

  - `string loginID`

    Bridge login ID.

  - `list<RemoveScope> removeScopes`

  - `Status status`

  - `?list<string> accountIDs`

    Chat accounts that belong to this bridge login, when known.

  - `?string statusText`

    Human-friendly bridge login status text.

  - `?User user`

    User the account belongs to.

### Example

```php
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

$client = new Client(accessToken: 'My Access Token');

$bridgeLogin = $client->bridges->logins->retrieve(
  'ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc', bridgeID: 'local-whatsapp'
);

var_dump($bridgeLogin);
```

#### Response

```json
{
  "bridgeID": "bridgeID",
  "loginID": "loginID",
  "removeScopes": [
    "current-device"
  ],
  "status": "connected",
  "accountIDs": [
    "string"
  ],
  "statusText": "statusText",
  "user": {
    "id": "id",
    "cannotMessage": true,
    "email": "email",
    "fullName": "fullName",
    "imgURL": "imgURL",
    "isSelf": true,
    "phoneNumber": "phoneNumber",
    "username": "username"
  }
}
```

## Remove bridge login

`$client->bridges->logins->remove(string loginID, string bridgeID, Scope scope): LoginRemoveResponse`

**post** `/v1/bridges/{bridgeID}/logins/{loginID}/remove`

Remove a bridge login from this device or, when supported by the bridge, from all devices.

### Parameters

- `bridgeID: string`

  Bridge ID.

- `loginID: string`

  Bridge login ID.

- `scope: Scope`

  Where this bridge login should be removed.

### Returns

- `LoginRemoveResponse`

  - `string bridgeID`

  - `string loginID`

  - `Scope scope`

    Where this bridge login should be removed.

  - `"removed" status`

  - `?list<string> affectedAccountIDs`

### Example

```php
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

$client = new Client(accessToken: 'My Access Token');

$login = $client->bridges->logins->remove(
  'ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc',
  bridgeID: 'local-whatsapp',
  scope: 'current-device',
);

var_dump($login);
```

#### Response

```json
{
  "bridgeID": "bridgeID",
  "loginID": "loginID",
  "scope": "current-device",
  "status": "removed",
  "affectedAccountIDs": [
    "string"
  ]
}
```
