如何从redirect_uri获取访问令牌?

问题描述 投票:0回答:1

我正在创建一个基于 Web 的应用程序,并希望通过 OAuth2 使用其 API 从 Basecamp 获取数据。 我已成功将我的页面重定向到此链接我的redirect_uri,但我无法从该页面获取任何访问令牌。

如何使用我创建的 Flask 应用程序获取访问令牌? 任何代码示例将不胜感激。

@app.route('/')
def index():
    if 'basecamp_token' in session:
        ret = remote.get('email')
        return jsonify(ret.data)
        return redirect(url_for('login'))
    else:
        return redirect(url_for('redirecturl'))

@app.route('/login')
def login():
    return basecamp.authorize(callback=url_for('authorized', next=request.args.get('next') or request.referrer or None))

@app.route('/authorized')
@basecamp.authorized_handler
def authorized(resp):
    if resp is None:
        return 'Access denied: error=%s' % (
            request.args['error']
        )
    if 'basecamp_token' in resp:
        # session['example_oauth'] = resp
        print(resp)
        return jsonify(resp)
    return str(resp)

@app.route("/redirecturl")
def redirecturl():
    return redirect('http://basecamp.com/oauth2')

if __name__ == '__main__':
    app.secret_key = 'super_secret'
    app.run(port=8000, debug=True)
python api oauth-2.0 basecamp
1个回答
0
投票

我在Python包basecampapi的自述文件中对此进行了逐步解释,您需要首先从URL获取验证码,然后使用该代码发出请求以获取访问令牌和刷新令牌。然后,您可以在应用程序中永久使用刷新令牌来始终生成新的访问令牌。如果这对您来说更容易,请先在 Python 中生成刷新令牌,然后您可以在您的应用程序中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.