Я использую 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"
вы можете увеличить значение «expires» –
установить, что срок действия истекает, если вы хотите –
Где я могу установить значение «expires»? В Google API Console или это конфигурация для PSA? – ihhcarus