mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +00:00
Return if refresh token is current used one in WS API (#16575)
This commit is contained in:
parent
e2465da7c2
commit
34d369ba26
@ -475,6 +475,7 @@ def websocket_create_long_lived_access_token(
|
||||
def websocket_refresh_tokens(
|
||||
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg):
|
||||
"""Return metadata of users refresh tokens."""
|
||||
current_id = connection.request.get('refresh_token_id')
|
||||
connection.to_write.put_nowait(websocket_api.result_message(msg['id'], [{
|
||||
'id': refresh.id,
|
||||
'client_id': refresh.client_id,
|
||||
@ -482,6 +483,7 @@ def websocket_refresh_tokens(
|
||||
'client_icon': refresh.client_icon,
|
||||
'type': refresh.token_type,
|
||||
'created_at': refresh.created_at,
|
||||
'is_current': refresh.id == current_id,
|
||||
} for refresh in connection.user.refresh_tokens.values()]))
|
||||
|
||||
|
||||
|
@ -360,6 +360,7 @@ class ActiveConnection:
|
||||
authenticated = refresh_token is not None
|
||||
if authenticated:
|
||||
request['hass_user'] = refresh_token.user
|
||||
request['refresh_token_id'] = refresh_token.id
|
||||
|
||||
elif ((not self.hass.auth.active or
|
||||
self.hass.auth.support_legacy) and
|
||||
|
@ -320,6 +320,7 @@ async def test_ws_refresh_tokens(hass, hass_ws_client, hass_access_token):
|
||||
assert token['client_name'] == refresh_token.client_name
|
||||
assert token['client_icon'] == refresh_token.client_icon
|
||||
assert token['created_at'] == refresh_token.created_at.isoformat()
|
||||
assert token['is_current'] is True
|
||||
|
||||
|
||||
async def test_ws_delete_refresh_token(hass, hass_ws_client,
|
||||
|
Loading…
x
Reference in New Issue
Block a user