29. August 2013

ExtJS Store AJAX Proxy HTTP Basic Authorization

29. August 2013 - Geschrieben von Martin - Keine Kommentare

Um Daten von einem Webservice abzurufen, der mittels HTTP Basic Authorization gesichert ist muss dem AJAX Proxy ein Header mitgegeben werden, der die Base64 encodeten Zugangsdaten enthält. Dies habe ich bei meinem Store direkt in den Konstruktor geschrieben:

constructor: function(config) {
    this.proxy.headers = {
        'Authorization': 'Basic ' + window.btoa(config.username + ':' + config.password)
    };
    this.callParent(config);
}

im Gesamten dann etwa so:

Ext.define('Resi.stores.Mails', {
    proxy: {
        type: 'ajax',
        url: 'api/mails'
    },
    constructor: function(config) {
        this.proxy.headers = {
            'Authorization': 'Basic ' + window.btoa(config.username + ':' + config.password)
        };
        this.callParent(config);
    }
});

Die verwendete window.btoa ist leider nur in neuen Browsern verfügbar, sollten auch ältere Browser später diese Anwendung nutzen sollen, muss hier eine Base64 Bibliothek eingebunden werden.

var Mails = Ext.create('Resi.stores.Mails', { 
    username: 'Resi',
    password: 'Mein sicheres Passwort'
});

Schreibe einen Kommentar