0

私はauthlibが初めてで、ドキュメントをチェックしているときに、passwordgrant_typeの「自動更新」をサポートしていると述べています。

を使用しているときに、現在関連付けられているトークンの有効期限が切れたことをライブラリが検出してclient_credentials、新しいアクセス トークンを要求できるかどうか疑問に思っていました。(私のためにOAuthダンス全体を行っています)

401 を取得したかどうか、必要なすべての呼び出しをチェックしてから、新しいトークンを取得するアクションをトリガーするのは見苦しく思えます。

ここに従うべきベストプラクティスはありますか? これをどうにかしてデコレータとして追加できますか?

4

2 に答える 2

2

前の回答に風味を加えるために、refresh_token 関数を最近の API 統合で機能させることができました。

これには、refresh_token 呼び出しで client_id と client_secret を渡す必要があるという点で、いくつかの特徴がありました。grant_type も設定する必要がありました。これらは、使用しようとしている API に適用できない場合があります。

from authlib.integrations.requests_client import OAuth2Session

my_token = {'refresh_token':current_refresh_token,
            'access_token': current_access_token,
            'expires_at': current_access_token_expires_at,
            'expires_in': current_access_token_expires_in}

oauth_session = OAuth2Session(CLIENT_ID,CLIENT_SECRET,
                              authorization_endpoint=AUTH_ENDPOINT,
                              token_endpoint=TOKEN_ENDPOINT,
                              token=my_token,
                              grant_type='refresh_token')

    new_token = oauth_session.refresh_token(
                    url=REFRESH_TOKEN_URL,
                    client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET)
于 2020-05-30T20:53:29.150 に答える