注册Fitbit时的自定义ID

时间:2019-01-06 20:46:25

标签: python flask oauth-2.0 callback fitbit

对于我的系统,我的用户具有我提供给他们的唯一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的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

好问题。

Oauth2允许您在授权请求中包含状态信息-您可以在状态参数https://dev.fitbit.com/build/reference/web-api/oauth2/

中包含participant_id
  

状态:提供可能对您的应用程序有用的任何状态   当用户被重定向回您的应用程序时。这个参数   将完全按照您的应用程序添加到重定向URI中   指定。 Fitbit强烈建议您添加防伪令牌   并在重定向中确认其值以缓解   防止跨站请求伪造(CSRF)。

除了提供参与者ID之外,您还应提供防伪令牌以帮助对抗CSRF。

相关问题