Я получаю следующий ответ json от QuickBlox REST API:
{ "base": ["Unexpected signature"] }
Мой метод подписи:
private function createSignature($login, $password, $timestamp, $nonce) { $signatureContent = "application_id=" . env('QB_APP_ID') . "&auth_key=" . env('QB_APP_KEY') . "&nonce=" . $nonce . "×tamp=" . $timestamp . "&user[login]=" . $login . "&user[password]=" . $password; return hash_hmac('sha1', $signatureContent, env('QB_APP_SECRET')); }
Идентификатор приложения и ключ авторизации и правильный. Значение $signatureContent
(строки разрыва только для улучшения удобочитаемости текста):
application_id=24544 &auth_key=6N9bYKT-fKGRQ7q &nonce=268302610 ×tamp=1438287989 &user[login]=tester1@test.net &user[password]=qwer1234
Я получаю этот ответ, когда пытаюсь создать сеанс, используя эти параметры:
$postBody = http_build_query([ 'application_id' => env('QB_APP_ID'), 'auth_key' => env('QB_APP_KEY'), 'timestamp' => $ts, // SAME VALUE ON SIGNATURE: 1438287989 'nonce' => $nonce, // SAME VALUE ON SIGNATURE: 268302610 'signature' => $signature, 'user[login]' => $login, 'user[password]' => $password ]); // cURL Request and Response....
Что случилось с моей подписью?
Я создаю новый пользовательский регистр, поэтому необязательные параметры пользователя [login] и user [password]. Эти параметры требуются только для входа.