Skip to content
Snippets Groups Projects
Commit 34d369ba authored by Jason Hu's avatar Jason Hu Committed by Paulus Schoutsen
Browse files

Return if refresh token is current used one in WS API (#16575)

parent e2465da7
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment