mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-08-26 05:44:18 +03:00
handle invalidated (not expired) refresh tokens
Authored by: bashonly
This commit is contained in:
@@ -109,13 +109,24 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
if self._is_logged_in:
|
if self._is_logged_in:
|
||||||
headers['Authorization'] = f'Bearer {self._oauth_tokens[self._ACCESS_TOKEN_KEY]}'
|
headers['Authorization'] = f'Bearer {self._oauth_tokens[self._ACCESS_TOKEN_KEY]}'
|
||||||
|
|
||||||
response = self._download_json(
|
try:
|
||||||
f'{self._ACCOUNT_API_BASE}/api/v1/token/refresh', None,
|
response = self._download_json(
|
||||||
'Refreshing access token', 'Unable to refresh access token',
|
f'{self._ACCOUNT_API_BASE}/api/v1/token/refresh', None,
|
||||||
headers={**self._oauth_headers, **headers},
|
'Refreshing access token', 'Unable to refresh access token',
|
||||||
data=json.dumps({
|
headers={**self._oauth_headers, **headers},
|
||||||
'refreshToken': self._oauth_tokens[self._REFRESH_TOKEN_KEY],
|
data=json.dumps({
|
||||||
}, separators=(',', ':')).encode())
|
'refreshToken': self._oauth_tokens[self._REFRESH_TOKEN_KEY],
|
||||||
|
}, separators=(',', ':')).encode())
|
||||||
|
except ExtractorError as e:
|
||||||
|
if isinstance(e.cause, HTTPError) and e.cause.status == 401:
|
||||||
|
self._oauth_tokens.clear()
|
||||||
|
if self._oauth_cache_key == 'cookies':
|
||||||
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._ACCESS_TOKEN_KEY)
|
||||||
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._REFRESH_TOKEN_KEY)
|
||||||
|
else:
|
||||||
|
self.cache.store(self._NETRC_MACHINE, self._oauth_cache_key, self._oauth_tokens)
|
||||||
|
self._report_login_error('expired_refresh_token')
|
||||||
|
raise
|
||||||
|
|
||||||
self._oauth_tokens.update(traverse_obj(response, {
|
self._oauth_tokens.update(traverse_obj(response, {
|
||||||
self._ACCESS_TOKEN_KEY: ('accessToken', {str}, {require('access token')}),
|
self._ACCESS_TOKEN_KEY: ('accessToken', {str}, {require('access token')}),
|
||||||
|
|||||||
Reference in New Issue
Block a user