aggiungta SessionManager
This commit is contained in:
parent
a7f82eebad
commit
eb2ea45e16
2 changed files with 27 additions and 5 deletions
|
@ -6,8 +6,6 @@ import requests
|
||||||
SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
|
SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
|
||||||
SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
|
SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
|
||||||
|
|
||||||
current_session = None
|
|
||||||
|
|
||||||
class SessionData():
|
class SessionData():
|
||||||
__access_token: str
|
__access_token: str
|
||||||
__refresh_token: str
|
__refresh_token: str
|
||||||
|
@ -57,3 +55,28 @@ class SessionData():
|
||||||
return self.__access_token
|
return self.__access_token
|
||||||
|
|
||||||
|
|
||||||
|
class SessionManager():
|
||||||
|
__current_session: SessionData
|
||||||
|
__instance: "SessionManager"
|
||||||
|
|
||||||
|
def __new__(cls, *args, **kwargs):
|
||||||
|
if cls.__instance is None:
|
||||||
|
cls.__instance = super(SessionManager, cls).__new__(cls)
|
||||||
|
return cls.__instance
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.__current_session = None
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def instance(cls):
|
||||||
|
return cls.__instance
|
||||||
|
|
||||||
|
def set_session(self, __current_session):
|
||||||
|
if self.__current_session is not None:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.__current_session = __current_session
|
||||||
|
|
||||||
|
def get_current_session(self):
|
||||||
|
return self.__current_session
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ from fastapi import APIRouter, Request, Depends
|
||||||
from fastapi.responses import RedirectResponse
|
from fastapi.responses import RedirectResponse
|
||||||
import requests
|
import requests
|
||||||
import os
|
import os
|
||||||
from auth.session import SessionData, current_session
|
from auth.session import SessionData, SessionManager, current_session
|
||||||
|
|
||||||
music_router = APIRouter(prefix="/music")
|
music_router = APIRouter(prefix="/music")
|
||||||
|
|
||||||
|
@ -42,8 +42,7 @@ def callback(code: str):
|
||||||
expires_in = token_info.get("expires_in")
|
expires_in = token_info.get("expires_in")
|
||||||
|
|
||||||
# Salva access_token in sessione o database per usi futuri
|
# Salva access_token in sessione o database per usi futuri
|
||||||
if current_session is None:
|
SessionManager.instance().set_session(SessionData(access_token, refresh_token, expires_in))
|
||||||
current_session = SessionData(access_token, refresh_token, expires_in)
|
|
||||||
|
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue