Sencha touch 2 azure如何为invokeApi添加头部身份验证?

时间:2014-06-23 10:07:31

标签: javascript azure http-headers sencha-touch-2 azure-mobile-services

那么如何在Ext.Azure.invokeApi()请求中添加标头身份验证?我的程序需要头部身份验证才能访问自定义API,因为我已将操作权限设置为仅经过身份验证的用户。

1 个答案:

答案 0 :(得分:1)

在当前版本中,标题auth未添加到调用API中 - 但它很容易通过覆盖添加。

看看Ext.azure.Azure.getDefaultHeaders() - 您可以将其更改为以下内容:

getDefaultHeaders : function() {
    var headers = {
        'X-ZUMO-APPLICATION' : this.getAppKey(),
        'X-ZUMO-VERSION'     : this.getUserAgentString()
    };

    var authorizedUser = Ext.azure.Authentication.getCurrentUser();

    if (typeof authorizedUser !== 'boolean') {
        headers['X-ZUMO-AUTH'] = authorizedUser.get('token');
    }

    return headers;
}

那就可以了。我将在当前版本中记录一个无法执行此操作的错误,并尝试尽快修复。

要构建覆盖,请在应用中的某处包含以下代码:

Ext.define('Ext.override.Azure', {
    override : 'Ext.azure.Azure',

    getDefaultHeaders : function() {
        var headers = {
            'X-ZUMO-APPLICATION' : this.getAppKey(),
            'X-ZUMO-VERSION'     : this.getUserAgentString()
        };

        var authorizedUser = Ext.azure.Authentication.getCurrentUser();

        if (typeof authorizedUser !== 'boolean') {
            headers['X-ZUMO-AUTH'] = authorizedUser.get('token');
        }

        return headers;
    }
});