Gratis setup bij jaarabonnementen

Nu inschrijven!

Authenticatie

API-referentie: Auth-endpoints

De Auth API verstrekt AnswerPal JWT’s voor medewerker- en telefoon-kanaalcontexten, ondersteunt wachtwoordresetflows en stelt één interne klant-impersonatieroute bloot die beveiligd is door een interne header key.

Huidige endpoints

Login en tokenuitgifte

Auth-routes die inloggegevens uitgeven of herstellen vereisen geen bestaand bearertoken. Gebruik de geretourneerde JWT als Authorization: Bearer {token} op beveiligde AnswerPal API-endpoints.

  • POST /api/Auth/login – Geen bearer token
    Authenticeer een actieve klantmedewerker via username, password en hostname. Bij succes retourneert de route een JWT-tokenobject.
  • POST /api/Auth/phone-login – Geen bearer token
    Authenticeer een telefoon-kanaalcontext via phoneNumber en Twilio accountSid. De account SID moet overeenkomen met de klant en het telefoonnummer moet behoren tot een niet-verwijderd kanaal.
  • POST /api/Auth/impersonate-by-customer – Interne platformtooling
    Operationele route voor vertrouwde platformtools; niet bedoeld voor browsers of externe integraties.

Medewerker login

Request

POST /api/Auth/login
Content-Type: application/json

{
  "username": "[email protected]",
  "password": "correct horse battery staple",
  "hostname": "app.answerpal.eu"
}

Response

200 OK
Content-Type: application/json

{
  "token": "eyJhbGciOi..."
}

Login velden

LoginModel

  • username
    Vereiste medewerkergebruikersnaam. Het account moet actief zijn en niet verwijderd.
  • password
    Vereist wachtwoord dat geverifieerd wordt aan de hand van de opgeslagen BCrypt-hash.
  • hostname
    Vereiste hostnaam. Voor gewone hosts wordt er alleen gezocht naar medewerkers waarvan de klant-hostnaam overeenkomt. localhost omzeilt hostname filtering voor lokale ontwikkeling.

PhoneLoginModel

  • phoneNumber
    Vereist telefoonnummer dat moet overeenkomen met een niet-verwijderd kanaal.
  • accountSid
    Vereiste Twilio Account SID. Dit moet overeenkomen met de eigenaar-klant.

Operationele impersonatie

Voorbehouden aan vertrouwde platformtools. Stel deze route niet bloot aan browsers of externe clientintegraties.

Telefoon-login

POST /api/Auth/phone-login
Content-Type: application/json

{
  "phoneNumber": "+3225550100",
  "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Toegang en responsegedrag

Statuscodes

  • 200 OK
    Wordt geretourneerd door login, phone-login, impersonatie en reset requests wanneer geaccepteerd. Token-producerende routes retourneren { "token": "..." }.
  • 204 No Content
    Wordt geretourneerd bij een geslaagde wachtwoordreset.
  • 400 Bad Request
    Wordt geretourneerd wanneer verplichte velden ontbreken, wachtwoordcomplexiteit faalt of een reset-token ongeldig/verlopen is.
  • 401 Unauthorized
    Wordt geretourneerd bij ongeldige inloggegevens, ongeldige telefoongegevens of ontbrekende/ongeldige interne key.
  • 404 Not Found
    Wordt geretourneerd door interne impersonatie wanneer de klant of een actieve medewerker niet gevonden kan worden.

Beveiligingsopmerkingen

  • Geen Basic auth
    AnswerPal gebruikt geen Basic-authenticatie voor inkomende API-toegang. Auth verstrekt JWT bearer tokens. Basic/Bearer-instellingen elders zijn uitgaande connector-instellingen gebruikt wanneer AnswerPal externe systemen aanroept.
  • Wachtwoordreset-enumeratie
    Het wachtwoordreset-requestpad retourneert OK na delegatie aan de resetservice. De service retourneert stilletjes als er geen medewerker wordt gevonden, dus aanroepers mogen geen accountbestaan afleiden uit deze endpoint.
POST /api/Auth/login
Content-Type: application/json

{
  "username": "[email protected]",
  "password": "correct horse battery staple",
  "hostname": "app.answerpal.eu"
}
200 OK
Content-Type: application/json

{
  "token": "eyJhbGciOi..."
}
POST /api/Auth/phone-login
Content-Type: application/json

{
  "phoneNumber": "+3225550100",
  "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Wachtwoord resetten

Wachtwoordreset is een proces in twee stappen: vraag een resetlink aan per e-mail en hostnaam, en dien dan het token-GUID in samen met een geldig nieuw wachtwoord.

  • POST /api/Auth/request-password-reset – Geen bearer token
    Vraag een wachtwoordresetlink aan voor email en hostname. De API retourneert 200 OK, zelfs als er geen bijpassende medewerker wordt gevonden.
  • POST /api/Auth/reset-password – Geen bearer token
    Reset een wachtwoord met reset-token GUID en newPassword. Geldige reset tokens verlopen na vier uur en worden na gebruik verwijderd.

Reset aanvragen voorbeeld

POST /api/Auth/request-password-reset
Content-Type: application/json

{
  "email": "[email protected]",
  "hostname": "app.answerpal.eu"
}

Wachtwoord resetten voorbeeld

POST /api/Auth/reset-password
Content-Type: application/json

{
  "token": "00000000-0000-0000-0000-000000000000",
  "newPassword": "N3w-password!"
}

Velden en gedrag

Requestbody's

LoginModel

  • username
    Vereiste gebruikersnaam van medewerker. Het account moet actief zijn en niet verwijderd.
  • password
    Vereist wachtwoord, geverifieerd tegen de opgeslagen BCrypt-hash.
  • hostname
    Vereiste hostnaam. Voor normale hosts wordt gezocht binnen medewerkers waarvan de klant-hostnaam overeenkomt. localhost omzeilt hostname-filtering voor lokale ontwikkeling.

PhoneLoginModel

  • phoneNumber
    Vereist telefoonnummer dat moet overeenkomen met een niet-verwijderd kanaal.
  • accountSid
    Vereiste Twilio Account SID. Deze moet overeenkomen met de betreffende klant.

Operationele impersonatie

Voorbehouden aan vertrouwde platformtools. Stel deze route niet bloot aan browsers of externe clientintegraties.

PasswordResetRequestModel

  • email
    Vereist e-mailadres van de medewerker.
  • hostname
    Vereiste hostnaam die wordt gebruikt om de klant van de medewerker te vinden, waarbij localhost is toegestaan voor lokale ontwikkeling.

ResetPasswordModel

  • token
    Vereiste reset-token GUID, aangemaakt door de reset request-service. Tokens zijn vier uur geldig.
  • newPassword
    Vereist nieuw wachtwoord. Huidige complexiteitsregel: minimaal 8 tekens en minstens 3 van deze 4 categorieën: cijfer, kleine letter, hoofdletter, symbool.

Tokenclaims en validatie

JWT-claims van medewerkers

  • sub, CustomerID, CustomerRepID
    Subject is de gebruikersnaam van de medewerker. Klant- en medewerker-ID’s beperken de toegang tot beveiligde API’s.
  • TimeZone, Locale, Country
    Voorkeuren van de medewerker zijn opgenomen in de token en standaard ingesteld op UTC, en-US en US als deze ontbreken.
  • role, Role
    Rol wordt zowel als een rolclaim als als de numerieke rolwaarde opgenomen die door delen van de API wordt gebruikt.
  • jti
    Unieke JWT-ID die per token wordt gegenereerd.

JWT-claims van telefoon

  • sub
    Ingesteld op PhoneAuth.
  • CustomerID, ChannelID, PhoneNumber
    Telefoon-auth-tokens zijn gekoppeld aan een klant, kanaal en telefoonnummer.
  • jti
    Unieke JWT-ID die per token wordt gegenereerd.

Tokenvalidatie

  • issuer, audience, lifetime, signing key
    JWT-bearer-validatie controleert issuer, audience, levensduur en ondertekeningssleutel. Gegenereerde Auth-tokens vervallen momenteel na 12 uur.
  • access_token query
    De JWT-bearerconfiguratie leest ook access_token uit de querystring voor /chatHub-SignalR-verbindingen. Gebruik voor normale REST-aanroepen de Authorization-header.

Zodra u een JWT heeft verkregen, stuurt u deze mee als Authorization: Bearer {token} op beveiligde endpointpagina’s zoals Klanten, Kanalen, Tickets, Topics, Acties en Documenten. Telefoon-auth-tokens worden alleen geaccepteerd door policies die expliciet telefoontoegang toestaan.

Neen. Auth-routes die inloggegevens uitgeven of herstellen vereisen geen bestaand bearertoken. Gebruik de teruggegeven JWT voor beveiligde API-aanroepen.

De API genereert momenteel JWT’s met een geldigheidsduur van 12 uur. Validatie controleert issuer, audience, duur en ondertekeningssleutel.

Wachtwoorden moeten minimaal 8 tekens bevatten en minstens 3 van deze 4 categorieën: cijfer, kleine letter, hoofdletter en symbool.

Inhoudsopgave

AnswerPal: AI-gedreven oplossingen voor klantenservice die je ondersteuning en communicatie moeiteloos versterken.

Contact

Voor ondersteunings-, commerciële en partnervragen kunt u mailen naar [email protected]

AnswerPal
Bisschoppenhoflaan 380
2100 Antwerpen
België

+32.36416685

BE 0862.692.858