0
我正在使用Django和python-social-auth
通過Google OAuth2對我的用戶進行身份驗證並使用Youtube API。如何以編程方式刷新Google OAuth2令牌
我想達到的目標是要求他們僅登錄並授權一次並且只要我想要就可以使用他們的憑證。這是不可能的,因爲大約一個小時後他們到期,我需要用戶重新授權我的應用程序來獲得新的憑據。
我認爲解決方案是定期刷新憑證,但是我找不到任何可靠的指南來說明如何執行此操作。
我現在的配置是:
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'the_key'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'the_secret'
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ["https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly"]
SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {
'access_type': 'offline',
'approval_prompt': 'force'
}
此外,授權用戶具有以下附加功能:
{
"access_token": "the_access_token",
"expires": 3600,
"refresh_token": "the_refresh_token",
"token_type": "Bearer"
}
我試着用下面的代碼刷新,但由於它仍然過期,我認爲這是不正確的方式:
social_user = UserSocialAuth.objects.get(...) # Fetch the instance
social_user.refresh_token(load_strategy()) # Returns "None"
你可以增加「過期」值 –
只要你想 –
你可以在哪裏設置我的「過期」值?在Google的API控制檯中,還是PSA的配置? – ihhcarus