2017-06-20 89 views
1

我需要爲我的Flask-RESTful應用使用Autho0。 Auth0有一個example在視圖函數上使用裝飾器requires_auth使用帶有Flask-RESTful資源的Autho0裝飾器

@app.route('/secured/ping') 
@cross_origin(headers=['Content-Type', 'Authorization']) 
@requires_auth 
def securedPing(): 
    return "All good. You only get this message if you're authenticated" 

隨着瓶的RESTful我用add_resourceResource類,而不是app.route以期功能。我如何申請requires_authVersion

app = Flask(__name__) 
API = Api(app) 
CORS = CORS(app, resources={r'/api/*': {'origins': '*'}}) 
API.add_resource(Version, '/api/v1') 

回答

2

Flask-Restful文檔描述如何specify decorators for a resource

Resource類有一個屬性,稱爲method_decorators。您可以繼承Resource的子類並添加您自己的裝飾器,這些裝飾器將被添加到資源中的所有方法函數中。

class AuthResource(Resource): 
    method_decorators = [requires_auth] 

# inherit AuthResource instead of Resource to define Version