未知客户端访问 Eve API

Unknown client accessing Eve API

我正在尝试访问 Eve Online 的 CREST API。我正在尝试通过 SSO 获得授权,如下所述: http://eveonline-third-party-documentation.readthedocs.io/en/latest/sso/authentication.html

我从初始回调中获得了授权代码,但是在发送 post 请求以获取授权令牌时出现了问题。响应的body是

"error"=>"invalid_client", "error_description"=>"Unknown client"

我正在使用 Unirest,我认为我的 headers 没有任何问题。我错过了什么吗?这里有一个愚蠢的错误吗?

 headers = { "Authorization" => "Basic #{auth_head}",
          "Content-Type" =>  "application/json",
          "Accept" => "application/json",
          "Host" => "login.eveonline.com"
  }

 params = { "grant_type" => "authorization_code",
         "code" => "#{auth_code}"
}

response = Unirest.post "https://login.eveonline.com/oauth/token", 
                    headers:headers, 
                    parameters:params.to_json

auth_head是使用Ruby中的Base64编码库的Base64编码字符串。客户端 ID 和密钥 hard-coded 转换成 Base64,所以我也不确定问题出在哪里。

我发布这篇文章已经有一段时间了,但以防万一有人遇到这个具体问题,我的问题是 Base64 编码包含换行符 [\n]。从字符串中删除它们后,一切正常。如果您遇到的资源告诉您可以包含它们,我不能对其他 API 说这个,但是对于这个肯定不行。