代码之家  ›  专栏  ›  技术社区  ›  Sushil

QuickBlox会话创建:Rails应用程序中的意外签名

  •  0
  • Sushil  · 技术社区  · 9 年前

    我正在尝试使用Ruby on Rails从Rest API创建QuickBlox会话。我当前的实施:

    def qb_signin_params
      timestamp = Time.now.in_time_zone('UTC').to_i
      nonce = rand.to_s[2..6]
      signature_string = "application_id=#{QuickBlox_Application_Id}&auth_key=#{QUICKBLOX_Authorization_KEY}&nonce=#{nonce}&timestamp=#{timestamp}"
      digest = OpenSSL::Digest.new('sha1')
      signature = OpenSSL::HMAC.hexdigest(digest, signature_string, QUICKBLOX_Authorization_SECRET)
    
      params = Hash.new
      params['application_id'] = QuickBlox_Application_Id
      params['auth_key'] = QUICKBLOX_Authorization_KEY
      params['timestamp'] = timestamp
      params['nonce'] = nonce
      params['signature'] = signature
    
      params
    end
    

    返回以下错误:

    unexpected token at '<?xml version="1.0" encoding="UTF-8"?>
    <errors> 
      <error>Unexpected signature</error>
    </errors>
    

    我已经搜索了好几个地方,但始终找不到Ruby的正确Signature生成。请帮忙。

    1 回复  |  直到 9 年前
        1
  •  1
  •   x6iae user3772547    9 年前

    看看这个 quickblox_api 宝石这对我很有用。。。

    我也有同样的问题,看看里面做了什么,这几乎就是你(和我)正在做的……除了身体 hmac_sha 正在按字母顺序排序,如 quickblox documentation 我在下面引用:

    请求正文通过增加字符串数组“parameter=value”(用符号“&”分隔)形成排序(按字母顺序排序,按符号排序,而不是按字节排序)