Firefox插件请求模块 - 身份验证

时间:2014-12-09 15:33:00

标签: firefox firefox-addon firefox-addon-sdk

我正在使用firefox插件sdk。

我创建了一个插件,我想发送它的请求。我在Mozilla开发者网站上遇到了以下代码。

var Request = require("sdk/request").Request;
var latestTweetRequest = Request({
  url: "https://api.twitter.com/1/statuses/user_timeline.json?screen_name=mozhacks&count=1",
  onComplete: function (response) {
    var tweet = response.json[0];
    console.log("User: " + tweet.user.screen_name);
    console.log("Tweet: " + tweet.text);
  }
});

// Be a good consumer and check for rate limiting before doing more.
Request({
  url: "http://api.twitter.com/1/account/rate_limit_status.json",
  onComplete: function (response) {
    if (response.json.remaining_hits) {
      latestTweetRequest.get();
    } else {
      console.log("You have been rate limited!");
    }
  }
}).get();

在这里,我无法获得任何传递凭据和请求的选项。只要有可能我想避免将凭证与URL一起传递,例如http://username:password@example.com,因为很多时候密码中的特殊字符会产生问题。那么如何通过此请求传递凭据。

1 个答案:

答案 0 :(得分:1)

var { encode, decode } = require("sdk/base64");

// use encode() to base64 encode your credentials
var encodedCredentials = encode(email + ':' + password);

var testRequest = FRequest({
    url: url,   
    headers: {
        'Authorization': 'Basic ' + encodedCredentials
    },      
    onComplete: function(response){                     
        addOnPanel.port.emit('event', response.json)
    }
}).get();