2017-01-20 1 views
0

Semblable à this question. Mais OP a déclaré que son problème était résolu "seul".Satellizer n'envoie pas d'en-têtes d'authentification à certains clients

Egalement similaire à this.

(je vais copier coller certaines parties des descriptions car il est à peu près le même problème)

Je travaille sur un projet en utilisant AngularJS/Laravel. C'est un projet basé sur des jetons donc j'utilise le satellite pour gérer ça. Un de nos clients a le problème de ne pas pouvoir se connecter, il ne fonctionne pas seulement sur son navigateur ... il ne fonctionne même pas s'il crée un nouveau compte d'utilisateur sur son ordinateur. Le problème est qu'il n'envoie pas de jeton d'autorisation au serveur, un jeton valide est stocké dans la session locale, mais il n'est pas envoyé dans les en-têtes. De plus, je ne peux pas définir les en-têtes manuellement.

En regardant les en-têtes de demande dans l'onglet réseau dans les outils de développement, je peux voir que la demande ne contient pas l'en-tête d'autorisation.

Je suis perdu sur ce qu'il faut faire puisque j'ai l'impression d'avoir tout essayé. J'ai essayé de nettoyer le cache et de supprimer les cookies. Vérifié si les cookies ont été bloqués (ils ne l'étaient pas). Vérifié pour l'antivirus bizarre, les pare-feu ou les programmes bizarres installés (rien). J'ai également essayé de redémarrer le système et de créer un nouveau compte d'utilisateur pour le même ordinateur, rien n'a fonctionné. En fait, quelque chose de similaire est arrivé à un autre client (même projet) et nous l'avons blâmé sur son ancien système d'exploitation ne supportant pas quelque chose de satellisateur, mais cette fois-ci c'est un pc de dernière génération. Aussi, il a l'habitude de travailler et a cessé de travailler avec son PC soudainement. (après avoir couru ccleaner peut-être).

Mon soupçon est que ce n'est pas vraiment quelque chose à voir avec son ordinateur, mais un bug bizarre dans le système de saturation qui se déclenche dans certaines conditions difficiles.

J'espère que quelqu'un sait au moins où je pourrais commencer à chercher des réponses à ce problème.

Aussi, c'est la première fois que je pose une question ici ... (se sentir timide), salut. (aide)

Répondre

0

Je ne sais toujours pas la raison pour laquelle cela est arrivé pour commencer. En fin de compte, j'ai résolu le problème en éditant une partie du code source du satellite.

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 n'a pas été couchait l'en-tête, donc j'ajouté: config.headers[_this.SatellizerConfig.tokenHeader] = token; en dehors du cas et Satellizer a pu régler correctement l'en-tête. Après cela, j'ai défait mes modifications pour voir si après avoir correctement réglé les en-têtes, le satellite fonctionnerait comme prévu et cela a fonctionné, donc pour une raison quelconque, il n'a pas pu reconnaître mon utilisateur authentifié et a laissé les en-têtes échouer. Mais après l'avoir forcé à ajouter les en-têtes une fois qu'il a bien fonctionné à chaque fois après.

Espérons que cela peut aider quelqu'un qui se bat avec un problème similaire.