いくつかのヘルパーデコレーターを提供するフラスコ認証を使用しています。authorized_handler
以下にさまざまなメソッドをすべて追加しましたが、質問したいのは、デコレータによってスローされた問題をどのようにキャッチするかということです。デコレータに関する一般的な質問ですが、実際の例が役立つと思いました。
デコレータが爆発した場合、どうすればキャッチできますか?
import os
import flask
import flask_oauth
CONSUMER_KEY = os.environ['CONSUMER_KEY']
CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
oauth = flask_oauth.OAuth()
twitter = oauth.remote_app(
'twitter',
base_url='https://api.twitter.com/1/',
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authenticate',
consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET
)
app = flask.Flask(__name__)
@app.route('/login')
def login():
return twitter.authorize(
callback=url_for(
'oauth_authorized',
next=request.args.get('next') or request.referrer or None)
)
@app.route('/oauth-authorized')
# what happens if this raises an error?
@twitter.authorized_handler
def oauth_authorized(resp):
print 'foo-bar'