2017-05-27 3 views
0

J'ai un problème lors de la génération du jeton, quand j'appuie sur '/ api/token', sa méthode de retour n'est pas autorisée. quelqu'un peut-il m'aider .... Merci d'avanceJeton Flask générant

-------------------- app.py ------------ --------

@app.route('/api/token') 
@basicAuth.login_required 
def get_auth_token(): 
    token = g.user.generate_auth_token(600) 
    return jsonify({ 'token': token.decode('ascii') }) 

----------- models.py --------------

class User(db.Model, UserMixin, Base): 
    __tablename__ = 'user' 

    id = db.Column(db.Integer, Sequence('user_id_seq'), primary_key=True) 
    first_name = db.Column(db.String()) 
    last_name = db.Column(db.String()) 
    email = db.Column(db.String()) 
    password = db.Column(db.String()) 
    profile_picture = db.Column(db.String()) 
    authenticated = db.Column(db.Boolean, default=False) 

    def generate_auth_token(self, expiration = 600): 
     s = Serializer(app.config['SECRET_KEY'], expires_in = expiration) 
     return s.dumps({ 'id': user_id }) 

     def __repr__(self): 
     return "%s - %s" % (self.id, self.email) 


    @staticmethod 
    def verify_auth_token(token): 
     s = Serializer(app.config['SECRET_KEY']) 
     try: 
      data = s.loads(token) 
     except SignatureExpired: 
      return 'Token Expired' 
     except BadSignature: 
      return 'Bad Token' 
     user = User.query.get(data['id']) 
     return user 

Répondre

0

Vous devez définir la méthode HTTP que vous souhaitez utiliser lors de la définition de l'itinéraire. Par exemple, pour accepter les GET et POST méthodes, vous feriez:

@app.route('/api/token', methods=['GET', 'POST']) 

La documentation Flask dit:

Par défaut, un itinéraire uniquement des réponses aux requêtes GET, mais qui peut être modifié par fournir l'argument méthodes au décorateur route().

De: http://flask.pocoo.org/docs/0.12/quickstart/#http-methods

+0

merci pour la suggestion ... J'ai essayé aussi, mais il est de retour un accès non autorisé. –

+0

Avez-vous transmis les informations d'identification de base avec votre demande? –

+0

Merci Christopher j'ai résolu ce problème. –