cordova / phonegap 3.3:如何在fileUploadOptions中设置用户凭据

时间:2014-03-03 10:51:26

标签: authentication file-upload cordova

我正在尝试通过Phonegap 3.3文件传输插件将文件上传到通过基本身份验证保护的Windows服务器。实际上,我的应用程序和服务器之间的正常对话(每个ajax)通过在每次ajax调用时发送我的用户凭据来完美地工作。

var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType = "image/jpeg";
    options.chunkedMode = false;
    options.headers = {
        'Authorization':authHeaderValue(db.getItem("user"), db.getItem("pass")) 
    };

authHeaderValue = function(username, password) {
    var tok = username + ':' + password;
    var hash = btoa(tok);
    return "Basic " + hash;
};

这是我到目前为止所尝试的(我在stackoverflow线程上找到它)但是它给了我一个401未经授权的...

PLS。如果你知道可以帮助我的东西,请给我一个简短的回复。

向大家致以最诚挚的问候,

英格玛

1 个答案:

答案 0 :(得分:0)

嗯,我做了类似的事情,但我使用JWT代替“Basic”进行身份验证。我会告诉你我使用的代码:

options.headers = { 'Authorization': 'Bearer ' + app.session.getSess('token') };

我使用SessionStorage在令牌有效时保存令牌。 如果您想了解JSON Web Token

另外,请记住更改服务器中的标题,例如:

('Access-Control-Allow-Origin','*');
('Access-Control-Allow-Methods','GET,PUT,POST,DELETE,OPTIONS');
('Access-Control-Allow-Headers','Content-Type, Authorization, Content-Length, X-Requested-With');