簡體   English   中英

將用戶/密碼從IE8 / 9發送到node.js代理

[英]Send user/pass from IE8/9 to node.js proxy

我們有使用REST API的骨干.js應用程序。 對於每個請求,用戶/通行證都應發送到API。 這是我們發送請求的方式:

`Backbone.BasicAuth.set(tempUser,tempPass);

    this.fetch({
         error: function(){
            // code
         },
        success:function(model, response){              
            // code                 
        }} );`

這不適用於IE 8/9,因此我們制作了node.js服務器,並使用node-http-proxy模塊制作了代理服務器,該服務器將攔截所有請求。

這是節點代理服務器:

`var httpProxy = require('http-proxy');
 var options = {'target': {
     'host': 'test.someserver.com',
     'port': 8800
 }};

 httpProxy.createServer(function(req, res, proxy) {
     req.headers.host = 'test.someserver.com';
     proxy.proxyRequest(req, res, options);
 }).listen('8080');`

現在,我們的問題是將用戶/密碼發送到節點代理服務器,我們知道XDomainRequest不支持自定義標頭,並且我們不喜歡將用戶/密碼作為查詢字符串發送(這是不安全的)。

有沒有一種方法可以將用戶/密碼從IE 8/9發送到節點代理服務器?

是的,我實際上寫了一個庫來做到這一點。

https://github.com/victorquinn/Backbone.CrossDomain

它充當Backbone.sync()的替代品,因此IE7 / 8/9上的任何請求都將使用IE的XDomainRequest對象而不是XMLHttpRequest。 主要思想是您不必更改任何模型代碼,但是任何推遲到sync()的操作現在都可以使用,而以前則不需要。

如果您在使用該庫時遇到任何問題,請隨時與我聯系。

另一個選擇是將代理服務器與Backbone應用程序放在同一個域中(這將消除使用XDomainRequest對象的需要),但似乎這里不是一個選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM