Configurer avec l’authentification hybride
Règles eCDN pour les implémentations hybrides
Einstein Activities pour les implémentations hybrides
Les compétences pour réussir
Ask the Community
Avec B2C Commerce version 25.3, l’authentification hybride (auth) remplace l’option de cartridge Plug-in SLAS.
L’authentification hybride est une solution autonome pour les implémentations de sites qui nécessitent à la fois une autorisation Storefront Reference Architecture (SFRA)/SiteGenesis (SG) et une autorisation Shopper Login and API Access Service (SLAS). Cela signifie que vous avez besoin à la fois d’un dwsid jeton Web (SFRA/Site Genesis) et d’un jeton Web JSON (SLAS), et que ces jetons doivent être synchronisés. L’authentification hybride est une amélioration par rapport à l’approche Plugin SLAS, offrant une méthode plus efficace et rationalisée.
L’authentification hybride améliore les performances et la stabilité des boutiques hybrides en déplaçant la fonctionnalité directement dans la plateforme B2C Commerce.
Nous vous recommandons vivement de migrer vers l’authentification hybride afin de pouvoir profiter de performances améliorées et d’un flux de travail rationalisé.
Note
Ce guide explique comment configurer l’authentification hybride pour une boutique hybride qui est à la fois SFRA/SiteGenesis et composable.
Pour plus d’informations sur l’authentification hybride, consultez Authentification hybride.
Les tâches impliquées dans une implémentation hybride avec authentification hybride sont les suivantes :
Pour utiliser l’authentification hybride, construisez votre site avec :
commerce-sdk-react@3.3.0 ou version ultérieure
Kit Progressive Web App (PWA) version 3.10 ou ultérieure
Le tableau suivant compare la prise en charge des fonctionnalités PWA Kit pour les SLAS de plug-in par rapport à l’authentification hybride.
| Nom de | la fonctionnalité pris en charge dans PWA Kit w. Plugin SLAS | pris en charge dans PWA Kit w. Notes d’authentification | hybride |
|---|---|---|---|
| SiteGenesis | N | Y | |
| PCI tiers et connexion | sociale N | Partiellement pris en charge à partir du 30/04/2025. |
|
| Connexion | sans mot de passe N | Y | |
| SLAS Clients | privés Y Y | ||
| La prise en charge de l’authentification hybride SLAS Public Clients | Y | N* | est prévue pour une version ultérieure. |
| Système de confiance SLAS (TSOB) | N | Y | |
| Fonctionnalité | « Se souvenir de moi » de l’Script API N |
|
|
| PWA Kit Version 2.x | Y N | * | Pour HA, la prise en charge de PWA Kit 2.x dépend de la prise en charge du client public SLAS et est prévue pour une version future. |
| PWA Kit Version 3.x | Y | Y _ | salesforce/commerce-sdk-react v3.2.0_ est fourni avec PWA Kit 3.9.0. |
| Ne pas suivre (DNT) | N | Y | Vous devez effectuer des étapes spécifiques pour activer et synchroniser DNT. Reportez-vous au guide de documentation. |
| Salesforce recommande d’activer Shopper |
| ||
| Exclusion | de controller O | N | Dans l’authentification hybride, il n’est pas nécessaire d’exclure des controllers. |
| Personnalisation | du paramétrage des cookies Y, via la | personnalisation N/A | Dans l’authentification hybride, contrairement à plugin_SLAS, vous n’avez plus accès à l’objet cookie et ne pouvez plus remplacer les paramètres des cookies. |
*La prise en charge est prévue pour une version future.
Pour configurer l’authentification hybride pour une boutique hybride qui est à la fois SFRA/SiteGenesis et composable, suivez les étapes décrites en détail dans ce guide.
Configurez le réseau de diffusion de contenu intégré (eCDN) pour envoyer les requêtes de page en haut de l’entonnoir à la boutique composable : page d’accueil (/), page de liste de catégories (/category) et page de détails du produit (/product). Ces pages sont déployées dans un environnement MRT (Managed Runtime) s’exécutant sur mystorefront.mobify-storefront.com. Lorsque l’acheteur décide d’effectuer un achat, l’eCDN le redirige vers la page de paiement SFRA/SG existante en cours d’exécution le www.mystorefront.com.
Pour plus d’informations sur le routage du trafic vers MRT, voir :
Faites-en 1 ou 2.
npx @salesforce/pwa-kit-create-app my-hybrid-storefrontou
sfcc.session_bridge.Par défaut, PWA Kit utilise History API pour la navigation. Lorsqu’un acheteur clique sur un lien créé avec le composant de React Router, il déclenche une navigation logicielle vers le composant correspondant au chemin dans l’objet route défini dans app/routes.jsx. Pour créer un lien vers une page externe à PWA Kit (une page créée à l’aide de SFRA, par exemple), vous devez supprimer de app/routes.jsx toute route correspondant au chemin d’accès de l’URL.
Si votre projet PWA Kit a été généré avec la version 3.x du modèle Retail React App à l’aide de l’extensibilité du modèle, vous pouvez remplacer le fichier pour filtrer les overrides/app/routes.jsx liens vers des pages autres que PWA Kit à l’aide de JavaScript.
Nous avons créé un exemple de remplacement du overrides/app/routes.jsx fichier avec toutes les modifications en place pour filtrer /cart les routes et /checkout les itinéraires. Personnalisez l’exemple de code de remplacement dans ce gist public pour filtrer les liens vers des pages autres que PWA Kit.
Enfin, mettez à jour la route PWA catch-all (/*) dans app/routes.jsx. Remplacez le composant PWA
1import {withRouter} from 'react-router-dom'
2 ...
3 {
4 path: '*',
5 component: withRouter((props) => {
6 const {location} = props
7 const urlParams = new URLSearchParams(location.search)
8
9 useEffect(() => {
10 const newURL = new URL(window.location)
11 if (!urlParams.has('redirected')) {
12 newURL.searchParams.append('redirected', '1')
13 window.location.href = newURL
14 }
15
16 }, [window.location.href])
17 if (urlParams.has('redirected')) {
18 return <PageNotFound {...props} />
19 }
20 return null
21 })
22 }@salesforce/commerce-sdk-react@3.2.0 ou une version ultérieure.Lorsque l’authentification hybride est activée, les demandes SLAS /oauth2/token contiennent un pontage dwsid de session à l’aide de l’en-tête Set-Cookie de la réponse.
Dans Managed Runtime, activez le transfert des cookies :
Ces étapes ne s’appliquent que si vous avez déjà utilisé Plugin SLAS dans votre boutique hybride. Si vous avez une nouvelle boutique hybride et que vous n’avez jamais utilisé Plugin SLAS auparavant, vous pouvez ignorer ces étapes.
Note
Avec la migration vers l’authentification hybride B2C Commerce, PWA Kit n’utilise plus les SLAS de plug-in. Pour supprimer Plugin SLAS de votre boutique hybride :
Pour les sites SFRA uniquement, lorsque l’authentification hybride est activée pour l’extension de connexion de l’acheteur, la valeur DNT est automatiquement synchronisée avec la session étendue, ce qui garantit une expérience transparente entre les sessions.
Lorsque vous activez à la fois l’authentification hybride et la synchronisation DNT, le consentement au suivi fourni par un acheteur sur un site est automatiquement synchronisé avec l’autre site. Par exemple, dans un site hybride où la page d’accueil s’exécute sur PWA Kit et la page du panier sur SFRA :
Si vous avez personnalisé ou prévoyez de personnaliser l’implémentation DNT par défaut, il est possible que la synchronisation par défaut ne soit pas requise et ne fonctionne pas comme prévu. Dans ce cas, vous pouvez désactiver la synchronisation DNT à l’aide d’une préférence du site. Vous pouvez toujours activer l’authentification hybride même si la synchronisation DNT est désactivée.
Il existe une différence essentielle dans l’expiration des cookies DNT entre SFRA et PWA Kit :
Lorsqu’un acheteur passe d’une page PWA Kit à une page SFRA, l’expiration du cookie DNT passe de l’expiration du jeton d’actualisation à une expiration basée sur la session. Si l’acheteur ferme le navigateur, le cookie est supprimé. Par conséquent, lorsque l’acheteur revient, la bannière de consentement au suivi s’affiche à nouveau comme prévu.
Nous vous recommandons vivement de tester votre configuration hybride dans un environnement local. Pour ce faire, vous devez configurer un proxy inverse car l’eCDN ne prend pas en charge les SIG et les ODS. Pour configurer et tester votre site hybride localement sur des instances SIG, vous devez utiliser votre propre proxy inverse ou CDN pour répartir le trafic.
Nous avons créé un exemple d’application Node.js. Vous pouvez l’utiliser pour développer et tester des flux d’acheteurs pour un déploiement hybride sur PWA Kit et SFRA/SiteGenesis. Les instructions d’installation, de configuration et de test pour la configuration du proxy inverse sont mentionnées dans le fichier README du dépôt.
Vous pouvez configurer votre ODS pour utiliser une configuration d’alias similaire à votre configuration de production. Cela peut vous aider à maintenir des configurations locales et de production identiques. Par exemple, en configurant votre sandbox de sorte que votre site hybride soit disponible à l’URI /, vous vous assurez que les URL envoyées par pwa-kit n’ont pas besoin d’être traduites pour inclure l’identifiant du site. C’est généralement ainsi qu’un site de production est configuré.
Pour activer les alias dans Business Manager, suivez les instructions de ce module pour les alias de nom d’hôte Salesforce B2C Commerce sur Trailhead.
Vous pouvez configurer les routes de votre PWA Kit pour modifier toutes les URL sortantes (par exemple, celles destinées à SFRA) afin d’inclure le préfixe /s/SiteID. Cela garantit que votre instance reçoit les URL du controller d’une manière normalement utilisée sur les sandboxes sans avoir à configurer explicitement des alias de noms d’hôte. Notez que cela peut ne pas convenir à une configuration de production ; vous souhaiterez donc peut-être avoir une route par défaut (catch-all) différente pour les déploiements en production et sur sandbox.
Pour configurer les préfixes de route, mettez à jour la route par défaut de PWA (/*) dans app/routes.jsx ou overrides/app/routes.jsx.
1import {withRouter} from 'react-router-dom'
2// extensible
3import useMultiSite from '@salesforce/retail-react-app/app/hooks/use-multi-site';
4// non-extensible
5import useMultiSite from './hooks/use-multi-site';
6
7const DEFAULT_SITE_ID = 'RefArch'
8...
9 {
10 path: '*',
11 component: withRouter((props) => {
12 const {location} = props
13 const urlParams = new URLSearchParams(location.search)
14 const {site} = useMultiSite()
15 const siteId = site && site.id ? site.id : DEFAULT_SITE_ID
16 useEffect(() => {
17 const newURL = new URL(window.location)
18 if (!urlParams.has('redirected')) {
19 newURL.searchParams.append('redirected', '1')
20 newURL.pathname = `/s/${siteId}/${window.location.pathname
21 .split('/')
22 .slice(2)
23 .join('/')}`
24 window.location.replace(newURL)
25 }
26 }, [window.location.href])
27 if (urlParams.has('redirected')) {
28 return <PageNotFound {...props} />
29 }
30 return null
31 })
32}