# Authentication

### Exchange Code for Token

```typescript
// After user authorizes your app, exchange code for token
const authResponse = await InstagramHandler.exchangeCodeForToken(
  'YOUR_CLIENT_ID',
  'YOUR_CLIENT_SECRET',
  'YOUR_REDIRECT_URI',
  'AUTHORIZATION_CODE'
);

console.log('Access Token:', authResponse.access_token);
```

### Get Long-Lived Token (60 days)

```typescript
const longToken = await InstagramHandler.getLongLivedToken(
  'YOUR_CLIENT_SECRET',
  'SHORT_LIVED_TOKEN'
);

console.log('Long-lived token:', longToken.access_token);
console.log('Expires in:', longToken.expires_in, 'seconds');
```

### Refresh Access Token

```typescript
const refreshed = await instagram.refreshAccessToken();
console.log('New token:', refreshed.access_token);
```