Проблема с получением access_token после входа в систему Salesforce в React-Native. (redirect_uri не работает)

У нас есть 2 домена в Salesforce:
1-) https://gablesinsurancerecovery.my.salesforce.com
2-) https://gableinsurancerecovery.force.com

и у нас есть 2 пользователя:

изображение ошибки

Как видно на фото, мы видели страницу. Но мы ожидали, что это сработает, если отправить redirect_uri. Отправленный нами redirect_uri должен был вернуть «girApp://success» с access_token и instance_url в конце. Но мы сталкиваемся с экраном, как вы можете видеть на фото. Редирект не работает. Наша цель — получить доступ к access_token с перенаправлением внутри приложения после входа и авторизации.

1 ответ

Здесь есть что распаковать.

ваш основной домен для внутренних пользователей. предназначен для Customer/Partner Experience Cloud (ранее известного как Communities, ранее известного как Portal).

почта успешно работает на 1. домене, но не работает на 2. домене

По умолчанию Salesforce прекрасно работает с внутренними пользователями, входящими в сообщество, или даже с переключением с внутреннего SF на сообщество одним щелчком мыши. Сотрудничество и все такое. Ваш администратор, вероятно, пометил только определенные профили / наборы разрешений как членов сообщества, вам нужно проверить config. Но можно использовать страницу входа в сообщество, вы, ребята, просто решили этого не делать.

[email protected][email protected] почта успешно работает на 2. домене, но не работает на 1. домене

Да. Члены сообщества должны использовать страницу входа в сообщество. Они не могут использовать общий login.salesforce.com, test.salesforce.com или ваш фирменный ***.my.salesforce.com

отлично работает с (...) login.salesforce.com или 1. доменом, но не работает для 2. домена

Это связано с тем, что в большинстве случаев URL-адрес для входа в сообщество должен быть заполнен. Одного домена может быть недостаточно для входа в систему, потому что вы можете иметь до 100 сообществ на одном домене. Вы, вероятно, видели пример, когда включали сообщества (Настройка -> Цифровой опыт -> Настройки).

Перейдите в «Настройка» -> «Цифровой опыт» -> «Все сайты» и запишите URL-адрес, который вы там увидите. Вероятно, это будет что-то вроде . Это означает, что для входа в API вам может повезти с ***.force.com/myportalчем ***.force.com.

Прекратите читать этот ответ сейчас и перейдите к прочтению Sitecore — Как получить идентификатор пользователя, если пользователь вошел в систему с помощью внешнего поставщика удостоверений (Salesforce SSO) . Поиграйте с этим приложением OpenId Heroku, как только вы заставите его работать с пользователем сообщества в браузере, вы будете знать, какой URL-адрес добавить в свое приложение для реагирования. Разработчику React может понравиться и эта ссылка: https://gablesinsurancerecovery.force.com/.well-known/openid-configuration .

Это как бы написано в нижнем колонтитуле этой статьи: https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_endpoints.htm&type=5 .

Вместо использования login.salesforce.com вы также можете использовать в этих конечных точках домен My Domain, сайт Experience Cloud или домен test.salesforce.com (песочница). В качестве имени хоста используйте My Domain, Experience Cloudsite или собственный URL -адрес.

Другие вопросы по тегам