2017-01-20 1 views
0

Ähnlich wie this question. OP erklärte jedoch, dass sein Problem "von allein" gelöst sei.Satellizer sendet keine Authentifizierungs-Header mit einigen Clients

Auch ähnlich wie this.

(Ich werde einige Teile der Beschreibungen kopieren und einfügen, da es so ziemlich das gleiche Problem ist)

ich an einem Projekt arbeitete AngularJS/Laravel verwenden. Es ist ein tokenbasiertes Projekt, deshalb verwende ich Satellizer, um damit umzugehen.

Einer unserer Kunden hat das Problem, sich nicht einloggen zu können, es funktioniert nicht nur in seinem Browser ... es funktioniert auch nicht, wenn er ein neues Benutzerkonto auf seinem Computer erstellt.

Das Problem ist, dass es kein Authorization Token an den Server sendet, ein gültiges Token wird in der lokalen Sitzung gespeichert, aber es wird nicht in den Headern gesendet. Außerdem kann ich die Header nicht manuell einstellen.

Beim Betrachten der Anfrage Header auf der Registerkarte Netzwerk in Dev-Tools kann ich sehen, dass die Anfrage nicht den Autorisierungsheader enthält.

Ich bin verloren auf was zu tun, da ich das Gefühl habe, dass ich alles versucht habe, was ich konnte. Versucht, Cache zu leeren und Cookies zu löschen. Überprüft, ob Cookies blockiert wurden (sie waren nicht). Auf seltsame Antivirenprogramme, Firewalls oder seltsame Programme überprüft (nichts). Ich habe auch versucht, das System neu zu starten und ein neues Benutzerkonto für den gleichen Computer zu erstellen, nichts hat funktioniert.

Es funktioniert tatsächlich in jedem anderen Client-PC, außer im vergangenen Jahr etwas Ähnliches passiert mit einem anderen Client (dasselbe Projekt) und wir beschuldigten es auf seinem alten Betriebssystem nicht etwas von Satellizer unterstützen, aber dieses Mal ist es ein letzter Gen-PC. Auch es früher zu arbeiten und aufgehört zu arbeiten mit seinem PC plötzlich. (nach dem Ausführen von ccleaner vielleicht).

Mein Verdacht ist, dass es nicht wirklich etwas mit seinem Computer zu tun hat, aber ein seltsamer Bug im Satellizer, der mit einigen kniffligen Bedingungen auslöst.

Ich hoffe, dass jemand zumindest weiß, wo ich anfangen könnte, nach Antworten auf dieses Problem zu suchen.

Auch es ist das erste Mal, dass ich hier eine Frage posten ... (Gefühl schüchtern), hi. (Hilfe)

Antwort

0

Ich weiß immer noch nicht den Grund, warum das passiert ist.

Am Ende löste ich es durch Bearbeiten eines Teils des Satellizer-Quellcodes.

if (_this.SatellizerShared.isAuthenticated() && _this.SatellizerConfig.httpInterceptor()) { 
        var tokenName = _this.SatellizerConfig.tokenPrefix ? 
         [_this.SatellizerConfig.tokenPrefix, _this.SatellizerConfig.tokenName].join('_') : _this.SatellizerConfig.tokenName; 
        var token = _this.SatellizerStorage.get(tokenName); 
        if (_this.SatellizerConfig.tokenHeader && _this.SatellizerConfig.tokenType) { 
         token = _this.SatellizerConfig.tokenType + ' ' + token; 
        } 
        config.headers[_this.SatellizerConfig.tokenHeader] = token; 
       } 

Satellizer nicht die Header-Einstellung, so fügte ich hinzu: config.headers[_this.SatellizerConfig.tokenHeader] = token; außerhalb des ob und Satellizer der Lage war, richtig den Header zu setzen.

Danach habe ich meine Änderungen rückgängig gemacht, um zu sehen, ob nach der Einstellung der Header korrekt Satellizer würde wie erwartet funktionieren und es funktionierte, so aus irgendeinem Grund war es nicht in der Lage zu erkennen, meine authentifizierten Benutzer und ließ die Header aus, so dass es scheitern. Aber nachdem es gezwungen wurde, die Header hinzuzufügen, funktionierte es jedes Mal danach.

Hoffe, dass dies jemand mit einem ähnlichen Problem kämpfen kann.

Verwandte Themen