breadcrumbDescription
Headless Identity-API'er: forløbet for glemt adgangskode uden headless for kunder og partnere
Opsæt en nulstillingsproces for adgangskode uden headless på din app ved brug af forløbet for glemt adgangskode uden headless, som kalder API for glemt adgangskode uden headless. Brug dette forløb sammen med andre headless-forløb til at levere oprindelige identitetsoplevelser. Med dette forløb kan en bruger, der har glemt vedkommendes adgangskode, bekræfte deres identitet og oprette en ny adgangskode uden nogensinde at forlade den brandede oplevelse af din app.
EditionsHeading
| Tilgængelig i: både Salesforce Classic (ikke tilgængelig i alle organisationer) og Lightning Experience |
| Tilgængelig i: Enterprise, Unlimited og Developer Edition |
Dette hjælpeindhold beskriver, hvordan du opsætter forløbet, og hvordan det fungerer. Hvis du vil opsætte en end-to-end-eksempelimplementering, kan du se Hovedløs identitetsimplementeringsvejledning.
Hvis du vil sikre, at du har fuldført alle forudsætningstrin, kan du se Checklister for ID-implementering uden headless.
Forløbet Headless - Glemt adgangskode løser en almindelig situation. Når en bruger glemmer sin adgangskode og ikke kan logge ind, giver dette forløb funktionaliteten til at nulstille den uden at afbryde din apps brandede oplevelse.
Da du administrerer Salesforce Customer Identity via Experience Cloud-lokaliteter, kan du kun konfigurere forløbet Glemt adgangskode uden headless for kunder og partnere ved brug af et Experience Cloud-lokalitetsunderdomæne, f.eks. https://MyExperienceCloudSite.my.site.com. Du kan ikke opsætte dette forløb for medarbejdere, der får adgang til Experience Cloud-lokaliteter eller for medarbejdere, der får adgang til Salesforce Platform med login.salesforce.com eller et firmaspecifikt Mit domæne-login-URL.
Forløbet for glemt adgangskode uden headless fungerer på samme måde for private klienter, f.eks. klientapps og offentlige klienter, f.eks. enkeltsideapps eller mobilapps. Hovedforskellen er de sikkerhedsindstillinger, som du aktiverer for private klienter og offentlige klienter. Disse sikkerhedsindstillinger kontrollerer, hvilke parametre der skal overføres i den indledende anmodning om nulstilling af adgangskode. Der er to sikkerhedsindstillinger, begge på siden Experience Cloud-login og registrering.
- Kræv godkendelse for at få adgang til denne API
- Kræv reCAPTCHA for at få adgang til denne API
For private klienter anbefaler vi, at du som minimum aktiverer Kræv godkendelse for at få adgang til denne API. Med denne indstilling aktiveret skal du inkludere et adgangstoken, der er udstedt til en intern integrationsbruger i dine anmodninger om Glemt adgangskode-API for headless. Adgangstokenet skal indeholde forgot_password. For ekstra beskyttelse kan du også aktivere Kræv RECAPTCHA for at få adgang til denne API.
For offentlige klienter som mobilapps anbefaler vi, at du aktiverer Kræv reCAPTCHA for at få adgang til denne API. Med denne indstilling aktiveret skal du inkludere et reCAPTCHA-token i din indledende anmodning om Glemt adgangskode-API for headless. Vi anbefaler ikke aktivering af Kræv godkendelse for at få adgang til denne API, da en offentlig klient ikke kan bevare adgangstokenet hemmeligt.
Offentlige klienter skal også implementere en API-gateway mellem klienten og Salesforce for at vedligeholde sikkerheden.
Hvis du vil udvide dine mailskabelonindstillinger for den engangsadgangskode-mail (OTP), der sendes til slutbrugere under forløbet, skal du tilmelde dig mailskabelonens tilladelsesliste og oprette en tilladelsesliste med tilpassede skabeloner. Se Brug flere mailskabeloner til headless-forløb.
Brugere angiver som standard deres brugernavn for at nulstille deres adgangskode. Hvis du vil give brugerne flere muligheder, skal du opsætte headless-brugerdiscovery. Udvikl f.eks. et forløb, hvor brugere angiver deres mailadresse, telefonnummer eller endda et bestillingsnummer. Se Headless Login uden brugernavn.
Dette diagram viser, hvordan din app interagerer med Salesforce for at nulstille en adgangskode.
Lad os se nærmere på trinnene i dette forløb, der involverer interaktioner mellem din bruger, din app og Salesforce.
- Din klient anmoder om en adgangskodenulstilling (1).
- Salesforce returnerer en succesmeddelelse (2) og kontrollerer, at brugeren findes og er bekræftet.
- Salesforce genererer og mailer en engangsadgangskode (3).
- Din klient indsender den nye adgangskode (4).
- Salesforce bekræfter adgangskoderne og returnerer en bekræftelsesmeddelelse (5).
Din klient anmoder om en adgangskodenulstilling
Når din bruger har startet processen med nulstilling af adgangskode, sender din klient en POST-anmodning til slutpunktet for glemt adgangskode uden headless på din Experience Cloud-lokalitet (1).
Her er URI'en for POST-anmodningen.
/services/auth/headless/forgot_passwordMedtag disse sidehoveder i anmodningen.
| Sidehoved | Påkrævet? | Beskrivelse |
|---|---|---|
Authorization: Bearer
|
Krævet, hvis du aktiverer Kræv godkendelse for at få adgang til denne API på siden Experience Cloud-login og registrering. For private klienter anbefaler vi, at du altid aktiverer denne indstilling. For offentlige klienter anbefaler vi aldrig aktivering af denne indstilling. |
Indeholder et adgangstoken, der er udstedt til en intern integrationsbruger. Hvis du vil hente adgangstokenet, skal du bruge ethvert OAuth-standardforløb, som Salesforce understøtter. Sørg for, at du tildeler omfanget forgot_password til den tilsluttede app, der udsteder tokenet, eller overfører det som en parameter under OAuth-forløbet. |
Content-Type
|
Nej. | Angiver formatet på din anmodning, f.eks. application/json. |
Medtag disse parametre i anmodningens brødtekst.
| Parameter | Påkrævet? | Beskrivelse |
|---|---|---|
username
|
Krævet, hvis du ikke bruger headless-brugeropdagelse. | Brugernavnet til kontoen. |
login_hint
|
Krævet, hvis du bruger en Apex Discovery-handler uden headless. | En identifikator, som din Apex-handler bruger til at finde en brugers Salesforce-konto. Indsaml f.eks. en brugers bestillingsnummer i din app og overfør det i parameteren login_hint. Vi sender login_hint værdien direkte til din Apex-handler. |
customdata
|
Krævet, hvis du bruger en headless-brugerdiscovery-handler, der håndterer tilpassede data. Hvis du f.eks. også bruger handleren med et loginforløb, der håndterer tilpassede data, skal du overføre tilpassede data i forløbet for glemt adgangskode. Ellers er det valgfrit, men kan være nyttigt til at hjælpe din handler med at finde brugeren. |
En JSON-streng, der indeholder yderligere data, som din Apex headless discovery-handler bruger til at finde en brugers Salesforce-konto. Videregiv f.eks. oplysninger om brugerens landestandard. |
emailtemplate
|
Nej. | Det tilpassede udviklernavn for mailskabelon. Hvis du aktiverer Brug kun tilladelseslistede mailskabeloner i dine Experience Cloud-indstillinger, kan denne parameter kun indeholde en mailskabelon fra tilladelseslisten. Hvis du ikke aktiverer mailskabelonens tilladelsesliste, kan denne parameter inkludere enhver skabelon i din organisation. Hvis du vil kontrollere sproget for en tilpasset mailskabelon, skal du oprette en skabelon på det ønskede sprog. Hvis du ikke inkluderer denne parameter, bruger Salesforce den mailskabelon, der er konfigureret i dine Experience Cloud-indstillinger, uanset om mailskabelonens tilladelsesliste er aktiveret. Med denne indstilling bestemmer Salesforce sproget fra brugerens indstillinger. Se sprog, landestandard og valutaindstillinger. |
recaptcha
|
Krævet, hvis disse betingelser gælder for dig.
|
Et krypteret token, der er udstedt af Google reCAPTCHA API, når en bruger fuldfører en reCAPTCHA-udfordring. |
recaptchaevent
|
Krævet, hvis disse betingelser gælder for dig:
|
Et JSON-objekt, der indeholder disse underparametre.
Hvis du ønsker flere oplysninger, kan du se Google reCAPTCHA-dokumentationen. |
Her er der en eksempelanmodning for en offentlig klient, der bruger en tilpasset mailskabelon. Den indeholder et reCAPTCHA-token til sikkerhed og en emailtemplate-parameter med udviklernavnet på en tilpasset skabelon.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
"username":"lhansen@example.com",,
"emailtemplate":"unfiled$public/SalesNewCustomerEmail",
"recaptcha": "<recaptcha token>"
}
Her er der en eksempelanmodning for en privat klient, der bruger standardmailskabelonen. Det inkluderer et adgangstoken til sikkerhed.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"username": "lhansen@example.com"
}Her er der en eksempelanmodning for en privat klient, der bruger headless-brugerdiscovery.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"login_hint": "<user identifier such as email address, phone number, order number>",
"customdata": {
"firstName": "Lyle",
"lastName": "Hansen"
}
}(Valgfrit) Headless-bruger Discovery-handler finder bruger
Hvis du bruger en headless-brugerdiscovery-handler, tager handleren login_hint og customdata-parametre og finder den tilknyttede bruger. Handleren bekræfter, at mailadressen eller telefonnummeret for brugeren er bekræftet.
Hvis du ønsker en eksempelhandler, kan du se Auth.HeadlessUserDiscoveryHandler.
Salesforce returnerer en succesmeddelelse og bekræfter brugernavnet
Når Salesforce modtager anmodningen om glemt adgangskode, sender det en succesmeddelelse til klienten (2). Hvis du ikke bruger en headless discovery-handler, bekræfter Salesforce derefter, at brugernavnet matcher en konto. Hvis brugernavnet ikke matcher en konto, stopper forløbet.
Her er et eksempel på et vellykket svar.
{
"status": "success",
"status_code": "otp_sent"
}Hvis anmodningen mislykkes, returnerer Salesforce en fejlmeddelelse, der beskriver anmodningen. For de fleste fejl returnerer Salesforce fejlmeddelelsen i dette format.
{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}
Hvis f.eks. klienten bruger den forkerte type HTTPS-anmodning, returnerer Salesforce dette fejlsvar.
{
"status_code": "post_required",
"invalid request": "use a POST request",
"status": "failed"
}
For den invalid_recaptcha fejlkode indeholder svaret yderligere oplysninger fra Googles reCAPTCHA-tjeneste. Sådan formateres disse svar.
{
"status_code": "invalid_recaptcha",
"invalid_request: "invalid reCAPTCHA token",
"status": "failed",
"recaptcha_response": {
"success": <true or false>,
"challenge_ts": <timestamp of the challenge in ISO format (yyyy-MM-dd'T'HH:mm:ssZZ)>,
"hostname": "<host name of the client where the reCAPTCHA was solved>",
"error-codes": [<error codes from Google reCAPTCHA...>]
}
}
Her er en oversigt over fejlsvarene.
| Fejlkode | Fejlenavn | Fejlbeskrivelse | Detaljer og løsning |
|---|---|---|---|
authentication_req
|
invalid_request
|
include an authentication header
|
Du får denne fejl, hvis du aktiverer indstillingen Kræv godkendelse for at få adgang til denne API (anbefales altid til private klienter), og du ikke sender adgangstokenet korrekt. Send adgangstokenet i et Authorization:Bearer-sidehoved. |
headless_forgot_password_disabled
|
invalid_experience
|
enable the headless forgot password flow
|
Aktiver Tillad nulstilling af adgangskode via forløbet Glemt adgangskode uden headless i dine Experience Cloud-indstillinger. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless. |
https_required
|
invalid_request
|
use a URL that starts with HTTPS
|
Anmodningen overholder ikke HTTPS-protokollen. Gennemse Hyptertext Transfer Protocol-specifikationen, opdater anmodningen, og send den igen. |
invalid_authorization
|
invalid_request
|
authentication failure
|
Du får denne fejl, hvis du har aktiveret indstillingen Kræv godkendelse for at få adgang til denne API (anbefales altid for private klienter), og det adgangstoken, der er inkluderet i anmodningen, ikke er gyldigt. Adgangstokenet er f.eks. udløbet eller inkluderer ikke omfanget forgot_password. Kontroller adgangstokenet, og få et nyt om nødvendigt. |
invalid_domain
|
invalid_request
|
invalid domain
|
Anmodninger til dette slutpunkt understøttes kun for Experience Cloud-lokalitetsdomæner. |
invalid_params
|
invalid_request
|
invalid parameters
|
Anmodningen indeholder ikke-understøttede parametre, ellers er parametrene ikke formateret korrekt. Gennemse de understøttede sidehoved- og brødtekstparametre og eksempelanmodninger for initialisering af adgangskodenulstilling. |
invalid_recaptcha
|
invalid_request
|
invalid reCAPTCHA token
|
For denne fejl inkluderer svaret et ekstra Hvis du ønsker flere oplysninger om specifikke fejl, kan du se disse ressourcer i Googles dokumentation. |
invalid_template
|
invalid_param
|
invalid email template
|
Bekræft, at klienten sender udviklernavnet på en tilpasset mailskabelon i parameteren emailtemplate. |
missing_auth_params
|
invalid_request
|
include an authentication header or reCAPTCHA
parameter
|
Anmodninger til dette slutpunkt skal som minimum inkludere enten et adgangstoken eller et reCAPTCHA-token, afhængigt af din apptype og Experience Cloud-indstillinger. Gennemse Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless, og opdater anmodningen, så den matcher dine indstillinger. |
not_allowed_template
|
invalid_param
|
email template not allowlisted
|
Du får denne fejl, hvis du aktiverer mailskabelonens tilladelsesliste, og værdien i parameteren emailtemplate ikke er en del af tilladelseslisten. Hvis du ønsker flere oplysninger om tilladelseslister, kan du se Brug flere mailskabeloner til headless-forløb. |
otp_generation_failed
|
otp_error
|
OTP generation failed
|
Salesforce kunne ikke generere en OTP. Prøv at sende anmodningen igen. |
post_required
|
invalid_request
|
use a POST request
|
Anmodningstypen understøttes ikke. Send en HTTPS POST-anmodning. |
recaptcha_req
|
invalid_request
|
include a reCAPTCHA parameter
|
Du får denne fejl, hvis du aktiverer Kræv reCAPTCHA for at få adgang til denne API i dine Experience Cloud-lokalitetsindstillinger, og anmodningen ikke indeholder et reCAPTCHA-token i recaptcha-parameteren. Inkluder et reCAPTCHA-token. |
unknown_error
|
unknown_error
|
retry your request
|
Der var et problem med at sende anmodningen, men vi ved ikke, hvad der gik galt. Prøv at kontrollere din internetforbindelse, opdatere siden og sende anmodningen igen. |
user_account_locked
|
invalid_user
|
user account is locked
|
Brugeren er låst ude af sin konto. Hvis du vil gendanne adgangen, skal du låse brugeren op. |
Salesforce genererer og mailer en engangsadgangskode
Salesforce bekræfter, at der findes en konto med brugerens brugernavn i systemet. Hvis kontoen findes, genererer den engangsadgangskode og sender den i en mail (3) til mailadressen på filen. Denne mail genereres ved brug af enten standardmailskabelonen eller ved at referere til en tilpasset skabelon fra emailtemplate-parameteren i den indledende anmodning. Hvis du ønsker oplysninger om tilpasning af mailskabelonen, kan du se Tilpas mail sendt fra Experience Cloud-lokaliteter.
Din klient sender den nye adgangskode
Når klienten modtager succesmeddelelsen fra Salesforce, viser klienten som standard en side til nulstilling af adgangskode for brugeren. Denne side skal indeholde felter for engangsadgangskode og brugerens nye adgangskode. Den nye adgangskode er underlagt Salesforce-adgangskodekravene. Når brugeren har udfyldt disse felter, sender klienten et andet brugernavn, OTP og ny adgangskode i en anden POST-anmodning til slutpunktet for glemt adgangskode (4).
Medtag disse sidehoveder i anmodningen.
| Sidehoved | Påkrævet? | Beskrivelse |
|---|---|---|
Authorization: Bearer
|
Krævet, hvis du aktiverer Kræv godkendelse for at få adgang til denne API på siden Experience Cloud-login og registrering. For private klienter anbefaler vi, at du altid aktiverer denne indstilling. For offentlige klienter anbefaler vi aldrig aktivering af denne indstilling. |
Indeholder et adgangstoken, der er udstedt til en intern integrationsbruger. Hvis du vil hente adgangstokenet, kan du bruge ethvert OAuth-standardforløb, som Salesforce understøtter. Sørg for, at du tildeler omfanget forgot_password til den tilsluttede app, der udsteder tokenet, eller overfører det som en parameter under OAuth-forløbet. |
Content-Type
|
Nej. | Angiver formatet på din anmodning, f.eks. application/json. |
Medtag disse parametre i anmodningens brødtekst.
| Parameter | Påkrævet? | Beskrivelse |
|---|---|---|
username
|
Krævet, hvis du ikke bruger en headless-brugerafdækningshandler. | Brugernavnet til kontoen. |
login_hint
|
Krævet, hvis du bruger en headless-brugerafdækningshandler. | Den identifikator, som din Apex-handler brugte til at finde en brugers Salesforce-konto. |
otp
|
Ja. | Den engangsadgangskode, som Salesforce genererede og sendte en mail til brugeren. |
newpassword
|
Ja. | Den nye adgangskode, som brugeren oprettede. |
Her er der en eksempelanmodning for en privat klient.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Authorization: Bearer 00DR****************
Content-Type: application/json
{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}
Her er der en lignende anmodning for offentlige klienter, der ikke inkluderer et adgangstoken. Da reCAPTCHA-tokenet blev sendt i den indledende anmodning, er det ikke påkrævet i denne.
POST /services/auth/headless/forgot_password HTTP/1.1
Host: MyDomainName.my.site.com
Content-Type: application/json
{
"username": "lhansen@example.com",
"otp" : "123abc",
"newpassword" : "abcd1234"
}Salesforce bekræfter adgangskoderne og returnerer en succesmeddelelse
Når Salesforce modtager adgangskodeanmodningen, bekræfter det, at engangsadgangskode er gyldig, og det kontrollerer, at den nye adgangskode opfylder kravene. Hvis disse to kriterier opfyldes, indstilles den nye adgangskode. Når adgangskoden er ændret, sender Salesforce en succesmeddelelse til klienten (5). Sådan ser succesmeddelelsen ud.
{
"status": "success",
"status_code": "success"
}Din klient skal advisere brugeren om, at ændringen er blevet accepteret, og at vedkommende kan logge ind med sin nye adgangskode.
Hvis klienten sender en ukorrekt adgangskode, eller den nye adgangskode ikke opfylder Salesforce-standardsikkerhedskravene, mislykkes nulstillingen af adgangskode. Hvis nulstillingen af adgangskode mislykkes, kan din klient maksimalt oprette fem forsøg på at nulstille adgangskoden ved brug af den samme OTP. Du kontrollerer det maksimale antal forsøg i dine Experience Cloud-indstillinger. Når der er for mange mislykkede forsøg, skal din klient sende en ny indledende anmodning om nulstilling af adgangskode, så der kan genereres en ny engangsadgangskode, som kan sendes med mail til din bruger.
Hvis adgangskodeændringen ikke lykkes, returnerer Salesforce et fejlsvar i dette format.
{
"status_code": "<error code>",
"<error name>": "<error description>",
"status": "failed"
}
Her er en oversigt over fejlene for denne anmodning.
| Fejlkode | Fejlenavn | Fejlbeskrivelse | Detaljer og løsning |
|---|---|---|---|
headless_forgot_password_disabled
|
invalid_experience
|
enable the headless forgot password flow
|
Aktiver Tillad nulstilling af adgangskode via forløbet Glemt adgangskode uden headless i dine Experience Cloud-indstillinger. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless. |
https_required
|
invalid_request
|
use a URL that starts with HTTPS
|
Anmodningen overholder ikke HTTPS-protokollen. Gennemse Hyptertext Transfer Protocol-specifikationen, opdater anmodningen, og send den igen. |
invalid_domain
|
invalid_request
|
invalid domain
|
Anmodninger til dette slutpunkt understøttes kun for Experience Cloud-lokalitetsdomæner. |
invalid_otp
|
otp_error
|
invalid OTP
|
OTP'en matcher ikke det, som Salesforce sendte til brugeren, eller den er udløbet. Kontroller OTP, og anmod om en ny om nødvendigt. |
invalid_params
|
invalid_request
|
invalid parameters
|
Anmodningen indeholder ikke-understøttede parametre, ellers er parametrene ikke formateret korrekt. Gennemse de understøttede sidehoved- og brødtekstparametre og eksempelanmodninger for ændring af adgangskoden. |
password_policy_check_failure
|
password error
|
password does not follow policy
|
Adgangskoden følger ikke den adgangskodepolitik, der er konfigureret for din organisation. Udover den politik, du angiver, håndhæver Salesforce nogle adgangskodekrav for alle brugeradgangskoder. Se Angiv adgangskodepolitikker. |
post_required
|
invalid_request
|
use a POST request
|
Anmodningstypen er ikke gyldig. Send en HTTPS POST-anmodning. |
regenerate_otp
|
otp_error
|
user made too many invalid attempts; regenerate
OTP
|
Brugeren forsøgte at bruge OTP for mange gange. Anmod om en ny OTP. Du kan kontrollere det maksimale antal forsøg på nulstilling af adgangskode, du tillader, før brugeren skal anmode om en ny OTP. Se Konfigurer Experience Cloud-indstillinger for forløbet Glemt adgangskode uden headless. |
unknown_error
|
unknown_error
|
retry your request
|
Der var et problem med at sende anmodningen, men vi ved ikke, hvad der gik galt. Prøv at kontrollere din internetforbindelse, opdatere siden og sende anmodningen igen. |
user_account_locked
|
invalid_user
|
user account is locked
|
Brugeren er låst ude af sin konto. Hvis du vil gendanne adgangen, skal du låse brugeren op. |
