# Getting Stored OAuth Tokens and User Information

Cotter's SDK automatically stores the returned `access_token`, `id_token` , `refresh_token` and user information in the device's secure storage when the user successfully authenticates.

## Get Access Token

This function automatically refreshes the access token when needed.

```javascript
const getAccessToken = async () => {
  var cotter = new Cotter(API_KEY_ID);
  try {
    var accessToken = await cotter.tokenHandler.getAccessToken();
    console.log('Access Token', accessToken);
  } catch (err) {
    console.log('Access Token Error', err);
  }
};
```

[Check out how the Access Token Object looks like.](https://github.com/cotterapp/cotter-token-js#usage-with-cotter)

## Get ID Token

This function automatically refreshes the id token when needed.

```javascript
const getIDToken = async () => {
  var cotter = new Cotter(API_KEY_ID);
  try {
    var idToken = await cotter.tokenHandler.getIDToken();
    console.log('ID Token', idToken);
  } catch (err) {
    console.log('ID Token Error', err);
  }
};
```

[Check out how the ID Token Object looks like.](https://github.com/cotterapp/cotter-token-js#usage-with-cotter)

## Get Logged-in User

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const getLoggedInUser = async () => {
    var cotter = new Cotter(API_KEY_ID);
    try {
        let user = await cotter.getLoggedInUser();
    } catch(err) {
        console.log('Get user error', err);
    }
};
```

{% endtab %}

{% tab title="User Object" %}

```typescript
class User {
  ID: string; // Cotter User ID
  issuer: string;
  client_user_id: string;
  enrolled: string[];
  identifier: string;
}
```

{% endtab %}
{% endtabs %}

## Log Out

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const logOut = async () => {
  var cotter = new Cotter(API_KEY_ID);
  try {
    await cotter.logOut();
  } catch (err) {
    console.log(err);
  }
};
```

{% endtab %}
{% endtabs %}

## OAuth Token Specification

{% content-ref url="../../getting-access-token/handling-authentication-with-cotter" %}
[handling-authentication-with-cotter](https://docs.cotter.app/getting-access-token/handling-authentication-with-cotter)
{% endcontent-ref %}
