Проблема с получением access_token после входа в систему Salesforce в React-Native. (redirect_uri не работает)
У нас есть 2 домена в Salesforce:
1-) https://gablesinsurancerecovery.my.salesforce.com
2-) https://gableinsurancerecovery.force.com
и у нас есть 2 пользователя:
- [электронная почта защищена]почта [email protected][защищенная электронная почта][защищенная электронная почта]
почта успешно работает на 1. домене, но не работает на 2. домене.
Аналогично, успешно работает на 2. домене, но не работает на 1. домене.
Это не проблема. Проблема в следующем:
2.домен важен для нас. Потому что у нас есть реактивный проект от forcereact, и мы хотим работать с доменом сообщества. ( 2. домен ). Мы успешно настроили эту ссылку: https://www.youtube.com/watch?v=9zxMUrayFZ8&t=1634s
Мы отлично работали с видео в ссылке для домена login.salesforce.com или 1., но не работает для 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 -адрес.