> For the complete documentation index, see [llms.txt](https://docs.cotter.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cotter.app/sdk-reference/react-native/getting-stored-oauth-tokens-and-user-information.md).

# 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="/pages/-M4HUyse-9aPxMqUoSRy" %}
[Cotter's OAuth 2.0 Tokens Specification](/getting-access-token/handling-authentication-with-cotter.md)
{% endcontent-ref %}
