Guider
Egen drift
API:t finns i varje NONOX, också det du driftar själv, och det kostar ingenting. Allt i guiderna gäller; byt bara https://nonox.app mot din egen adress.
Adresserna
| Adress | |
|---|---|
| API | https://<din-server>/api/v1 |
| Godkännande (OAuth) | https://<din-server>/anslut |
| Token | https://<din-server>/oauth/token |
| Metadata | https://<din-server>/.well-known/oauth-authorization-server |
| Den här dokumentationen | https://<din-server>/utvecklare |
OpenAPI-filen har en server med variabeln host för just det här, så att verktyg som Postman kan peka om alla anrop på en gång. Installationen som visar den här sidan har:
| På den här installationen | URL |
|---|---|
| API | https://nonox.app/api/v1 |
| Godkännande | https://nonox.app/anslut |
| Token | https://nonox.app/oauth/token |
| Metadata | https://nonox.app/.well-known/oauth-authorization-server |
| OpenAPI | https://nonox.app/utvecklare/openapi.yaml |
Nycklar för signering
OAuth-token signeras med en RSA-nyckel. Skapa nycklarna en gång:
php artisan passport:keysDe hamnar i storage/oauth-private.key och storage/oauth-public.key och ska aldrig in i git. Du kan också ange dem i miljövariablerna PASSPORT_PRIVATE_KEY och PASSPORT_PUBLIC_KEY. Utan nycklar går modulen inte att slå på. Byts nycklarna blir alla utfärdade access tokens ogiltiga; apparna förnyar med sin refresh token och märker inget mer.
Registrera appar
php artisan connect:app "Exempelappen" https://app.example/callback
php artisan connect:app "Exempelappen mobil" https://app.example/callback --publicSe Autentisering för vad kommandot skriver ut och reglerna för omdirigeringsadresser.
Gränser och livslängder
Alla gränser ställs in i .env. Tabellen visar vad den här installationen använder:
| Gräns | På den här installationen | Inställning |
|---|---|---|
| Per app eller API-nyckel | 120 anrop/minut | NONOX_CONNECT_RATE_LIMIT_PER_CREDENTIAL |
| Per företag (alla appar och nycklar tillsammans) | 600 anrop/minut | NONOX_CONNECT_RATE_LIMIT_PER_COMPANY |
| Per IP-adress, före inloggning | 600 anrop/minut | NONOX_CONNECT_RATE_LIMIT_PER_IP |
| Tokenadressen per IP-adress | 30 anrop/minut | NONOX_CONNECT_RATE_LIMIT_TOKEN_ENDPOINT |
| Access tokens giltighet | 15 minuter | NONOX_CONNECT_ACCESS_TOKEN_MINUTES |
| Refresh tokens giltighet | 30 dagar | NONOX_CONNECT_REFRESH_TOKEN_DAYS |
| Längsta giltighet för en API-nyckel | 365 dagar | NONOX_CONNECT_MAX_KEY_DAYS |
| Idempotensnycklar sparas | 24 timmar | – |
Access tokens gäller aldrig mer än 15 minuter, hur högt värdet än sätts.
Underhåll
php artisan connect:prune tar bort utgångna idempotensposter, koder och tokens. Den körs varje natt av schemaläggaren, så det enda som krävs är att schemaläggaren är igång (php artisan schedule:run varje minut).
Bakom en proxy
Gränser per IP-adress och IP-listor bygger på besökarens adress. Kör du NONOX bakom en lastbalanserare eller Cloudflare, se till att Laravel litar på proxyn (TrustProxies), annars ser alla anrop ut att komma från samma adress.
Mer
- README: installation
- ADR-032: besluten och säkerhetsmodellen bakom API:t.