Несколько вещей для размышления:
- Будет ли эта страница размещаться на вашем сайте?
- Будет ли это использоваться для нескольких организаций по продажам?
Одна вещь, которую вы можете сделать, это использовать API-вызов login () , чтобы получить идентификатор сеанса. Вы сможете определить, не удалось ли войти в систему, и соответствующим образом предупредить пользователя.
Оттуда вам придется перенаправить пользователя через страницу "frontdoor.jsp", которая имеет следующий формат:
- https://[host].salesforce.com/secur/frontdoor.jsp?sid=[session_id]&retURL=[start_page]
Где:
- [хост] - зависит от организации. Некоторые из них, которые я видел, это na1, na2, .... Если вы строите это только для 1 организации, вы можете жестко закодировать это значение. Если вы создаете для нескольких организаций, вы можете проанализировать его из свойства serverUrl возвращенного LoginResult .
- [session_id] - получить это из возвращенного LoginResult
- [start_page] - это необязательно, но его можно использовать для "глубокой ссылки" пользователя на страницу после того, как он вошел в систему.
Редактировать: 2014-08-25
Salesforce теперь официально поддерживает метод входа frontdoor.jsp, описанный в этом ответе ( ссылка ). Кроме того, токены session_ID могут быть получены из любого из следующих источников:
- access_token из аутентификации OAuth. Обратите внимание, что одна из областей, указанных при создании подключенного приложения, должна быть веб-или полной.
- LoginResult, возвращенный из вызова логина SOAP API ()
- Apex UserInfo.getSessionId ()