huggie
huggie

Reputation: 18247

Quickblox getting a session receives "Unexpected signature" error

When getting a session, I get an "unexpected error".

Here is my code to get the signature (modified from this since that code is without some imports and notably hmac.new() is used instead of hmac() since that code doesn't work for me.

import sys
import json
import time
import random
import hashlib
import hmac
import urllib
import httplib

application_id = '3427'
auth_key = 'PLYHedAmxwdvt59'
auth_secret = '*some secret key*'


nonce = str(random.randint(1, 10000))
timestamp = str(int(time.time()))

signature_raw_body = ("application_id=" + application_id + "&auth_key=" + auth_key +
            "&nonce=" + nonce + "&timestamp=" + timestamp)

signature = hmac.new(auth_secret, signature_raw_body, hashlib.sha1).hexdigest()

params = urllib.urlencode({'application_id': application_id,
                           'auth_key': auth_key,
                           'timestamp': timestamp, 'nonce' : nonce,
                           'signature' : signature})

conn = httplib.HTTPSConnection("api.quickblox.com")
conn.request("POST", "/session", params, {})
response = conn.getresponse()

print response.read()
print "signature = '%s'" % signature

The output:

<?xml version="1.0" encoding="UTF-8"?>
<session>
  <application-id type="integer">3427</application-id>
  <created-at type="datetime">2013-08-04T12:19:10Z</created-at>
  <device-id type="integer" nil="true"/>
  <id type="integer">3552056</id>
  <nonce type="integer">5855</nonce>
  <token>686840081c18c7dd0e0a779c233e0d9605bcb567</token>
  <ts type="integer">1375618748</ts>
  <updated-at type="datetime">2013-08-04T12:19:10Z</updated-at>
  <user-id type="integer" nil="true"/>
</session>

signature = 'f08b68b645184619bbe59bac217506e66a840425'

Next I use curl to attempt to create a session:

curl -X POST -H "Content-Type: application/json" -H "QuickBlox-REST-API-Version: 0.1.0" -d '{"application_id":"3427","auth_key":"PLYHedAmxwdvt59","nonce":"33432","timestamp":"1375619372","signature":"f08b68b645184619bbe59bac217506e66a840425"}' http://api.quickblox.com/session.json

I get this as a result: {"errors":{"base":["Unexpected signature"]}}

Something went wrong?

Upvotes: 3

Views: 1843

Answers (1)

Rubycon
Rubycon

Reputation: 18346

Here is my example:

curl -X POST -H "Content-Type: application/json" -H "QuickBlox-REST-API-Version: 0.1.0" -d '{"application_id":"92","auth_key":"wJHdOcQSxXQGWx5","nonce":"315","timestamp":"1375624737","signature":"f36336b8bc8449b8252edbc0ee441cdb5856112c"}' http://api.quickblox.com/session.json

Result:

{"session":{"application_id":92,"created_at":"2013-08-04T13:59:50Z","device_id":null,"id":3553701,"nonce":315,"token":"1d423b6633e2fc82f81d88b65f3e26198853c84c","ts":1375624737,"updated_at":"2013-08-04T13:59:50Z","user_id":null}}

You should check code which generates your signature

Upvotes: 0

Related Questions