OAuth 2.0-stroom voor vernieuwingstoken voor hybride apps
Gebruik de OAuth 2.0-stroom voor vernieuwingstoken voor hybride apps om hybride apps rechtstreeks beheer van websessies te geven nadat een initiële sessie is verlopen. Wanneer de autoriserende server een nieuw toegangstoken verleent met behulp van het verleningstype hybrid_refresh, omvat dit de sessie ID's (SID) van de aangevraagde domeinen in de respons ervan. De hybride app kan Lightning-, Visualforce- en inhoudsdomeincookies instellen en frontdoor.jsp gebruiken als brug naar het toegangstoken in een websessie, hetgeen ononderbroken service biedt. De stroom voor vernieuwingstoken voor hybride apps vernieuwt toegangstokens die zijn uitgegeven door de OAuth 2.0-webserver-, User-agent- en stroom voor tokens voor hybride apps.
Vereiste editions
| Beschikbaar in: Salesforce Classic (niet in alle organisaties beschikbaar) en Lightning Experience |
| Beschikbaar in: Alle editions |
Zie Nieuwe verbonden apps kunnen niet meer worden gemaakt in Spring '26 voor meer informatie.
Nadat een hybride app—via een verbonden app—een toegangstoken heeft ontvangen, kan deze een vernieuwingstoken gebruiken voor het ophalen van een nieuwe sessie wanneer de huidige sessie ervan verloopt. De time-outwaarde van de sessie van de verbonden app bepaalt wanneer een toegangstoken niet meer geldig is en wanneer om een nieuw token moet worden gevraagd met behulp van een vernieuwingstoken.
Schakel voor betere beveiliging rotatie van vernieuwingstokens in uw verbonden app of externe clientapp in wanneer u de OAuth-instellingen ervan configureert. Als deze instelling is ingeschakeld, geeft de verbonden app telkens wanneer de stroom wordt aangeroepen, een nieuw vernieuwingstoken uit met het toegangstoken. Het vorige vernieuwingstoken wordt automatisch ongeldig gemaakt. Rotatie van vernieuwingstokens zorgt ervoor dat elk vernieuwingstoken slechts één maal per gebruiker wordt gebruikt, waardoor vernieuwingstokens niet kunnen worden gebruikt om nieuwe toegangstokens te krijgen. Als iemand probeert om een vernieuwingstoken te gebruiken dat is geroteerd, maakt Salesforce het huidige vernieuwingstoken en alle gekoppelde toegangstokens ongeldig. Voor het ophalen van een nieuw vernieuwingstoken moet de client een nieuwe stroom voltooien.
invalid_grant wanneer u een token probeert aan te vragen.De stroom voor vernieuwingstoken voor hybride apps omvat deze stappen.
- De toepassing gebruikt het bestaande vernieuwingstoken om een nieuw toegangstoken aan te vragen.
- Na het verifiëren van het verzoek verleent Salesforce een nieuw toegangstoken aan de app.
- De app stelt rechtstreeks de SID's in de sessiecookies van de domeinen in en vormt een bug naar een websessie.
Een nieuw toegangstoken aanvragen
De app kan het vernieuwingstoken gebruiken voor het ophalen van een nieuw toegangstoken door het verzenden van een POST-verzoek voor vernieuwingstoken naar het Salesforce-tokeneindpunt.
De verbonden app kan de client_id en client_secret in de hoofdtekst van de POST-aanvraag voor het vernieuwingstoken verzenden, zoals hier getoond.
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com/
grant_type=hybrid_refresh&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571&
refresh_token=your token here
In plaats van clientgegevens als parameters te verzenden in de hoofdtekst van de POST-aanvraag van een vernieuwingstoken, kunt u het authenticatieschema HTTP Basic gebruiken. De indeling van dit schema vereist de client_id en client_secret in de autorisatieheader van de post: Authorization: Basic64Encode(client_id:secret).
De client_id en client_secret worden gescheiden met een dubbele punt (:). Zie het OAuth 2.0 Authorization Framework voor meer informatie.
Dit voorbeeld toont een POST-verzoek voor een vernieuwingstoken voor een hybride app, dat het HTTP-schema voor basisauthenticatie gebruikt in plaats van het verzenden van clientgegevens in de hoofdtekst van het POST-verzoek.
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
Authorization: Basic
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571
grant_type=hybrid_refresh&
refresh_token=your token here
client_id en client_secret worden verzonden in de hoofdtekst van de POST, wordt de autorisatieheader genegeerd.Met beide aanvraagindelingen van vernieuwingstokens neemt u de volgende parameters op.
| Parameter | Beschrijving |
|---|---|
client_id
|
De consumentensleutel van de verbonden app. Als u toegang wilt tot de consumentensleutel, zoekt u in Appbeheer de verbonden app en selecteert u Weergeven in de vervolgkeuzelijst. Klik vervolgens op Consumentengegevens beheren. Soms wordt u gevraagd uw identiteit te verifiëren voordat u de consumentensleutel kunt weergeven. |
client_secret
|
Het consumentengeheim van de verbonden app. Als u toegang wilt tot het consumentengeheim, zoekt u in Appbeheer de verbonden app en selecteert u Weergeven in de vervolgkeuzelijst. Klik vervolgens op Consumentengegevens beheren. Soms wordt u gevraagd uw identiteit te verifiëren voordat u het consumentengeheim kunt weergeven. |
grant_type
|
Het OAuth 2.0-toekenningstype dat de verbonden app aanvraagt. De waarde moet hybrid_refresh voor deze stroom zijn. |
refresh_token
|
Token dat wordt verkregen van de webserver-, User-agent- of stroom voor tokens voor hybride apps. Deze waarde is geheim. Neem afdoende maatregelen om deze te beschermen. Deze parameter wordt alleen geretourneerd als uw verbonden app is ingesteld met een refresh_token. |
client_assertion
|
In plaats van een client_secret door te geven, kunt u een client_assertion en client_assertion_type opgeven. Als er geen parameter client_secret wordt opgegeven, controleert Salesforce op de client_assertion en client_assertion_type. Zie client_assertion gebruiken in plaats van client_secret. |
client_assertion_type
|
Geef deze waarde op bij gebruik van de parameter De waarde van |
format
|
Als de verwachte retournotatie niet is opgenomen in de header van het verzoek, kunt u deze opgeven. De parameter
|
Salesforce verleent een nieuw toegangstoken
Nadat het verzoek is geverifieerd, verzendt Salesforce een respons met een nieuw toegangstoken naar de app. Dit is een URL-gecodeerde respons vanuit Salesforce.
{ "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448384422",
"instance_url":"https://yourInstance.salesforce.com/",
"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",
"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4",
"token_type":"Bearer",
"scope":"web visualforce refresh_token lightning content",
"cookie-clientSrc":"10.xxx.xx.xx",
"sidCookieName":"sid",
"cookie-sid_Client":"0000000...",
"content_domain":"MyDomainName.file.force.com",
"content_sid":"00Dxx0000006Gb…",
"lightning_domain":"MyDomainName.lightning.force.com",
"lightning_sid”:”00Dxx000000…",
"csrf_token":"ABCD…",
"visualforce_domain":"MyDomainName.vf.force.com",
"visualforce_sid":"00Dxx000000…"}
En dit is een voorbeeld van een XML-respons.
<Oauth>
<access_token>00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNB...</access_token>
<token_type>Bearer</token_type>
<scope>web visualforce refresh_token lightning content</scope>
<cookie-clientSrc>10.xxx.xx.xx</cookie-clientSrc>
<sidCookieName>sid</sidCookieName>
<cookie-sid_Client>0000000...</cookie-sid_Client>
<content_domain>MyDomainName.file.force.com</content_domain>
<content_sid>00Dxx0000006Gb…</content_sid>
<lightning_domain>MyDomainName.lightning.force.com</lightning_domain>
<lightning_sid>00Dxx000000…</lighning_sid>
<csrf_token>ABCD…</csrf_token>
<visualforce_domain>MyDomainName.vf.force.com</visualforce_domain>
<visualforce_sid>00Dxx000000…</visualforce_sid>
<instance_url>https://yourInstance.salesforce.com/</instance_url>
<id>https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P</id>
<issued_at>1278448101416</issued_at>
<signature>CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe+fVg=</signature>
</Oauth>
In dit voorbeeld ziet u een URL-gecodeerde respons.
access_token=00Dx0000000BV7z%21AR8AQP0jITN80ESEsj5E...&
token_type=Bearer&
instance_url=https%3A%2F%2FyourInstance.salesforce.com&
id=https://login.salesforce.com%2Fid%2F00Dx0000000BV7z%2F005x00000012Q9P&
issued_at=1278448101416&
signature=CMJ4l%2BCCaPQiKjoOEwEig9H4wqhpuLSk4J2...
cookie-clientSrc=10.xxx.xx.xx&
content_domain=MyDomainName.file.force.com&
content_sid=00Dxx0000006Gb...&
lightning_domain=MyDomainName.lightning.force.com&
lightning_sid=00Dxx000000...&
csrf_token=ABCD...&
visualforce_domain=MyDomainName.vf.force.com&
visualforce_sid=00Dxx000000...&
scope=web+visualforce+refresh_token+lightning+content&
sidCookieName=sid&
cookie-sid_Client=0000000...&
De volgende parameters kunnen worden opgenomen in de hoofdtekst van de respons.
| Parameter | Beschrijving |
|---|---|
access_token
|
Een OAuth-token dat een verbonden app gebruikt om toegang tot een beschermde resource aan te vragen namens de clienttoepassing. Het toegangstoken kan vergezeld gaan van aanvullende machtigingen in de vorm van bereiken. |
token_type
|
Een Bearer, dat wordt gebruikt voor alle responsen die een toegangstoken bevatten. |
instance_url
|
Een URL die het exemplaar van de organisatie van de gebruiker aangeeft. Bijvoorbeeld: https://yourInstance.salesforce.com/. |
id
|
Een identiteits-URL die kan worden gebruikt voor het identificeren van de gebruiker en voor het uitvoeren van een query voor meer informatie over de gebruiker. Zie Identiteits-URL's. |
issued_at
|
Het tijdstempel voor wanneer de handtekening is gemaakt, in milliseconden. |
signature
|
Base64-gecodeerde HMAC-SHA256-handtekening ondertekend met de client_secret. De handtekening kan de aaneengeschakelde ID en issued_at value bevatten, die u kunt gebruiken om te controleren of de identiteits-URL niet is gewijzigd sinds de server deze heeft verzonden. |
sfdc_site_url
|
Als de gebruiker lid is van een Experience Cloud-site, wordt de site-URL opgegeven. |
sfdc_site_id
|
Als de gebruiker lid is van een Experience Cloud-site, wordt de site-ID van de gebruiker opgegeven. |
content_domain
|
Het domein van de inhoudssessie, dat wordt toegewezen aan de inhouds-SID: U ontvangt deze waarde alleen als u het |
content_sid
|
De SID die is gekoppeld aan het domein van de inhoudssessie. Salesforce geeft als resultaat een unieke SID die de hybride app rechtstreeks instelt in de sessiecookie van het domein. U ontvangt deze waarde alleen als u het |
lightning_domain
|
Het domein van de Lightning-sessie, dat wordt toegewezen aan de Lightning-SID: U ontvangt deze waarde alleen als u het |
lightning_sid
|
De SID die is gekoppeld aan het domein van de Lightning-sessie. Salesforce geeft als resultaat een unieke SID die de hybride app rechtstreeks instelt in de sessiecookie van het domein. U ontvangt deze waarde alleen als u het |
visualforce_domain
|
Het domein van de Visualforce-sessie, dat wordt toegewezen aan de Visualforce-SID: U ontvangt deze waarde alleen als u het |
visualforce_sid
|
De SID die is gekoppeld aan het domein van de Visualforce-sessie. Salesforce geeft als resultaat een unieke SID die de hybride app rechtstreeks instelt in de sessiecookie van het domein. U ontvangt deze waarde alleen als u het |
csrf_token
|
Het Cross-Site Request Forgery-token (CSRF-token) ter voorkoming van aanvallen tijdens onderliggende sessies. U ontvangt deze waarde alleen als u het |
scope
|
De bereiken die zijn gekoppeld aan het toegangstoken. Bereiken definiëren meer gedetailleerd het type beschermde resources waartoe de client toegang kan krijgen. U wijst bereiken toe aan een verbonden app wanneer u deze samenstelt; tevens worden deze opgenomen bij de OAuth-tokens tijdens de autorisatiestroom. Zie OAuth-bereiken voor geldige parameters. |
sidCookieName
|
De naam van de sessiecookie die de hybride app gebruikt voor rechtstreekse verbinding met een websessie. De standaardwaarde is sid. |
cookie-sid_Client
|
Een sessiecookie die sessie-overname detecteert en verhindert. Met deze sessiecookie kan de hybride app een websessie rechtstreeks verbinden. |
cookie-clientSrc
|
Een sessiecookie die wordt gebruikt voor beveiliging. Met deze sessiecookie kan de hybride app een websessie rechtstreeks verbinden. |
parent_sid
|
Een SID die is gekoppeld aan de bovenliggende UI-sessie van de gebruiker. De |
App stelt domein-SID's in en vormt een brug naar een websessie
De hybride app stelt de gekoppelde SID's van de domeinen in de sessiecookies in om een websessie rechtstreeks te verbinden.
Voor implementaties die de gebruikersdivisie van objecten resetten voor de instelling Resetten naar standaarddivisie bij inloggen, moet de hybride app een websessie overbruggen met behulp van frontdoor.jsp. Zie Voordeur.jsp gebruiken om sessies in Salesforce te overbruggen voor meer informatie. Zie Gegevens ordenen met divisies voor meer informatie over gebruikersdivisies.

