File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed
Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change 3434 UserData2 ,
3535)
3636from api .v1 .schemas .token import TokenRequest
37- # from api.v1.schemas.session import SessionCreate
3837from api .v1 .schemas .user import (MagicLinkRequest ,
3938 ChangePasswordSchema ,
4039 AuthMeResponse )
5352)
5453from api .v1 .services .totp import totp_service
5554from api .utils .settings import settings
56- # from api.v1.services.session import SessionService
55+ from api .v1 .services .session import SessionService
5756
5857auth = APIRouter (prefix = "/auth" , tags = ["Authentication" ])
5958
@@ -307,6 +306,11 @@ def logout(
307306):
308307 """Endpoint to log a user out of their account"""
309308
309+ # logout/delete current user session
310+ current_refresh_token = request .cookies .get ("refresh_token" )
311+ SessionService .logout_session (db , current_user .id , current_refresh_token )
312+
313+
310314 response = success_response (status_code = 200 , message = "User logged put successfully" )
311315
312316 # Delete refresh token from cookies
Original file line number Diff line number Diff line change @@ -13,6 +13,16 @@ def __init__(self, db: Session):
1313 """Initialize the service."""
1414 self .db = db
1515
16+ @staticmethod
17+ def logout_session (db : Session , user_id : str , refresh_token : str ):
18+ """Logout a session."""
19+ session = db .query (UserSession ).filter (
20+ UserSession .refresh_token == refresh_token , UserSession .user_id == user_id ).first ()
21+ if not session :
22+ return
23+ db .delete (session )
24+ db .commit ()
25+
1626 def is_revoked_or_expired (self , refresh_token : str ):
1727 """Check if a session (refresh token) is revoked."""
1828 session = self .db .query (UserSession ).filter (UserSession .refresh_token == refresh_token ).first ()
You can’t perform that action at this time.
0 commit comments