2017-05-27 1 views
0

Ich habe ein Problem beim Generieren von Token, wenn ich '/ api/token' treffe, ist seine Rückgabemethode nicht erlaubt. kann mir jemand helfen .... Vielen Dank im VorausFlask Token Generieren

-------------------- 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 

Antwort

0

Sie müssen die HTTP-Methode festlegen, die Sie beim Definieren der Route verwenden möchten. Um zum Beispiel die GET und POST Methoden zu akzeptieren, würden Sie tun:

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

die Flasche Dokumentation sagt:

standardmäßig eine Route nur Antworten Anfragen zu bekommen, aber das kann geändert werden Bereitstellen des Methodenarguments für den route() Decorator.

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

+0

danken Sie für Vorschlag ... ich auch versucht, aber es unberechtigten Zugriff zurückkehrt. –

+0

Haben Sie die grundlegenden Authentifizierungsdaten mit Ihrer Anfrage weitergegeben? –

+0

Dank Christopher löste ich dieses Problem. –

Verwandte Themen