# Аутентификација

Аутентификујте захтеве вашег производа ка Beeuni-ју.

Canonical page: https://beeuni.ai/docs/sr/sdk/auth

## Направите клијент

SDK позива `getToken` при сваком захтеву. Ваша апликација управља чувањем и обнављањем токена.

```ts
import { createBeeuni } from '@beeuni/sdk';

const beeuni = createBeeuni({
  backendUrl: 'https://api.beeuni.ai/v1',
  getToken: async () => process.env.BEEUNI_API_KEY ?? null,
});

const projects = await beeuni.projects.list();
```

## Изаберите приступне податке

- Користите лични API кључ за серверске скрипте или CI. Чувајте га на серверу и изаберите најужи доступни опсег.
- Користите сервисни налог за агента или другог позиваоца који није човек. Доделите потребне улоге у пројекту; нов сервисни налог нема приступ пројектима.
- За апликацију која делује у име корисника користите [Sign in with Beeuni](/docs/sr/sdk/sign-in). Серверски обрађивач управља OAuth токенима и њиховим обнављањем.

## Обрадите одбијене захтеве

`401` означава недостајуће, истекле или неважеће приступне податке. `403` може да означава недовољне дозволе или искључену функцију; прочитајте код грешке пре поновног покушаја.

Ако функција за токен кешира токен који се обнавља, додајте `invalidate(rejectedToken)`. SDK позива ову функцију пре једног поновног покушаја одбијеног захтева.

## Заштитите приступне податке

Не стављајте серверске API кључеве у код прегледача, URL-ове или логове. Користите сервер или OAuth прокси за захтеве прегледача. Опозовите компромитоване податке у **Account → Tokens**.

[Потпун пример](/docs/sr/sdk/example)
