Я создаю страницу входа, с которой я хотел бы подключиться к своей учетной записи salesforce.com.
Идея состоит в том, что если имя пользователя / пароль введены неверно, я оставляю пользователя на своем веб-сайте, а в противном случае перенаправляю его на панель Salesforce.
Чтобы проверить, существует ли пароль для имени пользователя, я использую Salesforce PHP Toolkit. И когда я вижу, что пользователь вошел в действительную учетную запись, я использую cURL, чтобы отправить имя пользователя и пароль в форму, которая предположительно обрабатывает имя входа.
Вот несколько битов кода:
$url = 'https://login.salesforce.com/';
$fields = array(
'username' => urlencode($username),
'pw' => urlencode($pw),
'un' => urlencode($username),
'width' => urlencode($width),
'height' => urlencode($height),
'hasRememberUn' => urlencode(true),
'startURL' => urlencode(''),
'loginURL' => urlencode(''),
'loginType' => urlencode(''),
'useSecure' => urlencode(true),
'local' => urlencode(''),
'lt' => urlencode('standard'),
'qs' => urlencode(''),
'locale' => urlencode('uk'),
'oauth_token' => urlencode(''),
'login' => urlencode(''),
'serverid' => urlencode(''),
'display' => urlencode('page')
);
$fields_string ='';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
$ch = curl_init();
/* Set the url, number of POST vars, POST data */
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch, CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch);
curl_close($ch);
Я проверил источник страницы входа в систему salesforce.com, чтобы узнать, какие значения сообщений ему нужны, и я поместил их в приведенный выше код.
Проблема в том, что всякий раз, когда я ввожу действительную учетную запись, он перенаправляет меня на страницу входа (поэтому я не вошел в систему) salesforce.com, говоря
Вы попытались получить доступ к странице, для которой требуется логин salesforce.com. Если вы уже являетесь пользователем системы, пожалуйста, войдите ниже.
Может ли кто-нибудь сказать мне, что я делаю не так?
Ура!