Ошибка авторизации пользователя 422 "Неожиданная подпись"

Я пытался запустить авторизацию пользователя из моего приложения на C# по https://api.quickblox.com/auth.json. Я получил в ответ код ошибки **422 Неожиданная подпись. Кто-нибудь знает, что это значит или как отладить ошибку?

Я отправил следующую строку в качестве параметра:

{  "application_id": "MYAPPID",  
   "auth_key": "MYAUTHKEY",  
   "timestamp": "1394632995",  
   "nonce": "487",  
   "signature": "6bf130657ee04e68ff41a08ace44480f90b49f11",  
   "user": {    
      "login": "mylogin",    
      "password": "mypassword"  
   }
}

1 ответ

Это означает, что ваша подпись неверна;

Дополнительная информация о создании подписи находится здесь http://quickblox.com/developers/Authentication_and_Authorization

Некоторые примеры для C# вы можете найти здесь https://github.com/QuickBlox/SimpleSample-BackgroundMode-WindowsPhone7/blob/master/QuickBloxSDK-Silverlight/QuickBlox.cs

StringBuilder signature = new StringBuilder();
signature.Append("application_id");
signature.Append("=");
signature.Append(this.ApplicationId.ToString());
signature.Append("&");
signature.Append("auth_key");
signature.Append("=");
signature.Append(this.AuthenticationKey);
signature.Append("&");
signature.Append("nonce");
signature.Append("=");
signature.Append(randomResult);
signature.Append("&");
signature.Append("timestamp");
signature.Append("=");
signature.Append(ts.ToString());


byte[] key = Encoding.UTF8.GetBytes(this.AuthenticationSecret);
this.Encode(signature.ToString(),key)

private  string Encode(string input, byte[] key)
{
    HMACSHA1 myhmacsha1 = new HMACSHA1(key);
    byte[] byteArray = Encoding.UTF8.GetBytes(input);
    MemoryStream stream = new MemoryStream(byteArray);
    return myhmacsha1.ComputeHash(stream).Aggregate("", (s, e) => s + String.Format("{0:x2}", e), s => s);
}
Другие вопросы по тегам