add session_id to token model

This commit is contained in:
Min RK
2021-11-16 12:07:46 +01:00
parent 8813bb63d4
commit 39f19aef49
4 changed files with 18 additions and 0 deletions

View File

@@ -1336,6 +1336,14 @@ components:
Timestamp of last-seen activity using this token. Timestamp of last-seen activity using this token.
Can be null if token has never been used. Can be null if token has never been used.
format: date-time format: date-time
session_id:
type: string
nullable: true
description: |
The session id associated with the token, if any.
Only used for tokens set during oauth flows.
Added in 2.0.
responses: responses:
NotFound: NotFound:
description: The specified resource was not found description: The specified resource was not found

View File

@@ -210,6 +210,7 @@ class APIHandler(BaseHandler):
'last_activity': isoformat(token.last_activity), 'last_activity': isoformat(token.last_activity),
'expires_at': isoformat(token.expires_at), 'expires_at': isoformat(token.expires_at),
'note': token.note, 'note': token.note,
'session_id': token.session_id,
'oauth_client': token.oauth_client.description 'oauth_client': token.oauth_client.description
or token.oauth_client.identifier, or token.oauth_client.identifier,
} }

View File

@@ -58,6 +58,14 @@ class SelfAPIHandler(APIHandler):
model = get_model(user) model = get_model(user)
# add session_id associated with token
# added in 2.0
token = self.get_token()
if token:
model["session_id"] = token.session_id
else:
model["session_id"] = None
# add scopes to identify model, # add scopes to identify model,
# but not the scopes we added to ensure we could read our own model # but not the scopes we added to ensure we could read our own model
model["scopes"] = sorted(self.expanded_scopes.difference(_added_scopes)) model["scopes"] = sorted(self.expanded_scopes.difference(_added_scopes))

View File

@@ -340,6 +340,7 @@ class BaseHandler(RequestHandler):
auth_info['auth_state'] = await user.get_auth_state() auth_info['auth_state'] = await user.get_auth_state()
return await self.auth_to_user(auth_info, user) return await self.auth_to_user(auth_info, user)
@functools.lru_cache()
def get_token(self): def get_token(self):
"""get token from authorization header""" """get token from authorization header"""
token = self.get_auth_token() token = self.get_auth_token()