对于我的系统,我的用户具有我提供给他们的唯一ID(participant_id
)。
我有一个Flask服务器,可以向Fitbit注册用户。
@app.route('/fitbit_authorize')
def homepage(): #probably need to send participant_id here
return '<a href="%s">Authenticate with fitbit</a>' % FITBIT_AUTHORIZATION_URL
Fitbit将有关我的参与者注册成功的帖子请求发送到以下位置,让我在此获得其用户对oauth的访问/刷新令牌:
@app.route('/fitbit_callback')
def fitbit_callback():
error = request.args.get('error', '')
if error:
return "Error: " + error
state = request.args.get('state', '')
code = request.args.get('code')
token = fitbit_access.get_full_token(code)
我想知道如何在回调中检索授权者的原始ID(participant_id
)。无论如何,我是否需要在fitbit授权过程中传递其他信息,或者对我来说,检索其participant_id
的最佳方法是什么?
答案 0 :(得分:0)
好问题。
Oauth2允许您在授权请求中包含状态信息-您可以在状态参数https://dev.fitbit.com/build/reference/web-api/oauth2/
中包含participant_id
状态:提供可能对您的应用程序有用的任何状态 当用户被重定向回您的应用程序时。这个参数 将完全按照您的应用程序添加到重定向URI中 指定。 Fitbit强烈建议您添加防伪令牌 并在重定向中确认其值以缓解 防止跨站请求伪造(CSRF)。
除了提供参与者ID之外,您还应提供防伪令牌以帮助对抗CSRF。