# Autentikasi

Setiap request ke API dan MCP server membawa kredensial bearer:

```http
Authorization: Bearer pf_3kQ…
```

Ada dua jenis. Keduanya menjangkau tepat satu workspace dan bertindak sebagai satu anggotanya.

| | API key | Access token OAuth |
|---|---|---|
| Bentuk | `pf_…` | `pfa_…` |
| Untuk | Skrip Anda, n8n, Make, Zapier, CLI dan coding agent | Aplikasi yang login: Claude, ChatGPT, client MCP OAuth lain |
| Dibuat oleh | Pemilik workspace, di Settings | Anggota mana pun, dengan menyetujui aplikasinya |
| Masa berlaku | Sampai dihapus | 1 jam; aplikasi memperbaruinya, sampai 90 hari tanpa dipakai |
| Akses | Penuh atau hanya baca, dipilih saat dibuat | Penuh atau hanya baca, dipilih di layar persetujuan |
| Berlaku di | REST API dan MCP server | MCP server (dan REST API) |

## API key

- Pemilik membuat key di **Settings → Integrations → API & MCP**, maksimal 10 per workspace, masing-masing **Full access** atau
  **Read only** ([izin akses](/id/concepts/permissions/)).
- Key hanya ditampilkan sekali. PostFlow hanya menyimpan hash, beberapa karakter awal, dan kapan terakhir dipakai.
- Key bertindak sebagai pemilik yang membuatnya. Kalau ia keluar dari workspace, key berhenti bekerja.
- Menghapus key langsung menghentikan semua aplikasi yang memakainya.

## OAuth untuk client MCP

Aplikasi yang mendukung otorisasi MCP (Claude, ChatGPT) tidak perlu key. Saat tersambung ke `https://postflow.biz.id/api/mcp`
mereka menerima `401` yang menunjuk ke halaman login PostFlow, mendaftarkan diri, lalu mengarahkan anggota ke layar persetujuan
untuk memilih workspace dan tingkat akses. Token bertindak sebagai anggota tersebut, sesuai perannya.

Pemilik melihat semua aplikasi yang tersambung di **Settings → Integrations → Connected AI apps** dan bisa memutus mana pun.
Detail untuk pengembang client: [MCP server → OAuth](/id/agents/mcp/#masuk-dengan-oauth).

## Yang tidak bisa dilakukan kredensial

Tidak ada key atau token yang bisa menyambung atau memutus akun sosial, mengundang atau mengeluarkan orang, mengubah tagihan atau
langganan, atau membuat key lain. Semua itu tetap di aplikasi.

:::caution[Rahasiakan key]
Perlakukan key seperti kata sandi. Simpan di environment variable atau secret store, jangan di kode browser, aplikasi mobile,
prompt yang dibagikan atau repository publik. Kalau bocor, hapus lalu buat yang baru.
:::