async def refreshSession(self, refreshToken: str) -> dict: info = jwt.decode(refreshToken, JWT_SECRET, algorithms=['HS256']) if info['type'] != 'REFRESH': raise Exception('Not refresh token') session = Session.fromDict(info['session']) newSession = await userRepository.refreshSession(session) if newSession is None: raise Exception('Wrong token') return self._createTokens(newSession)
async def getUser(self, accessToken: str) -> Optional[User]: info = jwt.decode(accessToken, JWT_SECRET, algorithms=['HS256']) if info['type'] != 'ACCESS': return None session = Session.fromDict(info['session']) if (await userRepository.checkSession(session)): return await userRepository.getUserById(session.userId) else: raise Exception('Wrong token')