fix: retrieve user profile after refreshing twitch creds
This commit is contained in:
parent
5616f0e76d
commit
1452f2076b
7 changed files with 18 additions and 16 deletions
|
|
@ -11,17 +11,17 @@ class RefreshAction(BaseModel):
|
|||
authenticator: TwitchAuthenticator
|
||||
s: Settings
|
||||
|
||||
async def run(self, user: User):
|
||||
async def run(self, user: User) -> str | None:
|
||||
is_valid = await self.authenticator.token_is_valid(
|
||||
user.external_auth["twitch"]["access_token"]
|
||||
)
|
||||
if is_valid:
|
||||
return None
|
||||
|
||||
if not is_valid:
|
||||
new_tokens = await self.authenticator.refresh_token(
|
||||
user.external_auth["twitch"]["refresh_token"]
|
||||
)
|
||||
user.external_auth["twitch"]["access_token"] = new_tokens["access_token"] # type: ignore[index]
|
||||
user.external_auth["twitch"]["refresh_token"] = new_tokens["refresh_token"] # type: ignore[index]
|
||||
await self.user_repo.update(user)
|
||||
return user.encode()
|
||||
return None
|
||||
twitch_auth = await self.authenticator.refresh_token(
|
||||
user.external_auth["twitch"]["refresh_token"]
|
||||
)
|
||||
user.external_auth["twitch"]["access_token"] = twitch_auth.access_token
|
||||
user.external_auth["twitch"]["refresh_token"] = twitch_auth.refresh_token
|
||||
await self.user_repo.update(user)
|
||||
return user.encode()
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@ class TwitchAuthenticator(BaseModel):
|
|||
headers={"Accept": "application/json"},
|
||||
)
|
||||
response.raise_for_status()
|
||||
return TwitchAuth(**response.json())
|
||||
profile = await self.get_userinfo(response.json()["access_token"])
|
||||
return TwitchAuth(**response.json(), userinfo=profile)
|
||||
|
||||
async def validate_token(self, access_token: str) -> str:
|
||||
response = await self.client.get(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue