2016-06-21 3 views
-2

J'essaie d'exécuter un projet Ember que j'ai dû mettre à jour ses paquets, mais maintenant je rencontre des problèmes de dépréciation .Erreur Ember-simple-auth-token/Flask: AttributeError: l'objet 'function' n'a pas d'attribut 'get'

Mon problème actuel est que lorsque je clique sur 'Login' Je vois le côté client d'erreur suivant:

http://127.0.0.1:8000/api/token-auth/ 
[HTTP/1.0 500 INTERNAL SERVER ERROR 48ms] 

Et côté serveur:

127.0.0.1 - - [21/Jun/2016 00:38:52] "POST /api/token-auth/ HTTP/1.1" 500 - 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 2000, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1991, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1559, in handle_exception 
    handler = self._find_error_handler(InternalServerError()) 
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1476, in _find_error_handler 
    .get(code)) 
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1465, in find_handler 
    handler = handler_map.get(cls) 
AttributeError: 'function' object has no attribute 'get' 

script de connexion app/controllers/login.js:

import Ember from 'ember'; 


export default Ember.Controller.extend({ 
    session: Ember.inject.service(), 
    loginMessage: "", 
    actions: { 
    authenticate: function() { 
    var credentials = this.getProperties('identification', 'password'), 
     authenticator = 'authenticator:jwt'; 
     this.set("loginMessage", ""); 
     this.get('session').authenticate(authenticator, credentials); 
    } 
    } 
}); 

Le script de connexion est pris de https://github.com/jpadilla/ember-simple-auth-token et n'est peut-être pas entièrement actualisé. J'ai mis à jour braise de la version 1.13.13 à 2.6.0.

l'origine, il ressemblait à ceci:

import Ember from 'ember'; 


export default Ember.Controller.extend({ 
    loginMessage: "", 
    actions: { 
    authenticate: function() { 
     var credentials = this.getProperties('identification', 'password'), 
     authenticator = 'simple-auth-authenticator:jwt'; 
     this.set("loginMessage", ""); 
     this.get('session').authenticate(authenticator, credentials); 
    } 
    } 
}); 

Je ne connais pas de Ember vraiment, donc à ma compréhension très limitée est qu'il ya un build fichier javascript qui est basé au large d'une architecture MCR de petits fichiers javascript.

Version python2-flacon est 0.11-2

Si besoin est toute autre information s'il vous plaît dire.

+1

Ceci est une erreur avec votre code Python, pas avec JavaScript. On dirait que vous avez une fonction nommée 'handler_map' qui écrase un dictionnaire avec le même nom. Voir [mcve]. – davidism

+0

Donc c'est une erreur dans flask? Je vois ma question baissée. Mes excuses si je pensais que l'erreur que j'ai eu était due à moi-même et non à un tiers. – Folatt

+0

Des gestionnaires d'erreur sont-ils enregistrés? Quelle version de Flask? Essayez de produire un [mcve]. – davidism

Répondre

0

J'ai dû ajouter/modifier les éléments suivants:

./config/environment.js

ENV['ember-simple-auth'] = { 
    authorizer: 'authorizer:token', 
    crossOriginWhitelist: [ENV.APP.krakenHost] 
    }; 
    ENV['ember-simple-auth-token'] = { 
    serverTokenEndpoint: ENV.APP.krakenHost+'/api/token', 
    serverTokenRefreshEndpoint: ENV.APP.krakenHost+'/api/token/refresh', 
    refreshAccessTokens: true, 
    timeFactor: 1000, 
    refreshLeeway: 300 
    }; 

Cela a été enlevé après avoir fait un ember init, mais même avant de le retirer, il donnerait cette erreur les noms d'environnement et d'autorisateurs étaient obsolètes.