Update code in endpoints/logout.post.py
This commit is contained in:
parent
19f6fc855b
commit
3d5029f71f
@ -5,49 +5,32 @@ from sqlalchemy.ext.declarative import declarative_base
|
|||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
class UserSession(Base):
|
class User(Base):
|
||||||
__tablename__ = "user_sessions"
|
__tablename__ = "users"
|
||||||
|
|
||||||
id = Column(String, primary_key=True)
|
id = Column(String, primary_key=True)
|
||||||
token = Column(String)
|
token = Column(String, nullable=True)
|
||||||
is_active = Column(Boolean, default=True)
|
is_active = Column(Boolean, default=True)
|
||||||
|
|
||||||
@router.post("/logout")
|
@router.post("/logout")
|
||||||
async def logout_demo(
|
async def logout_demo(
|
||||||
|
user_id: str = "demo_user",
|
||||||
token: str = "dummy_jwt_token_123"
|
token: str = "dummy_jwt_token_123"
|
||||||
):
|
):
|
||||||
"""Demo logout endpoint"""
|
"""Demo logout endpoint"""
|
||||||
if not token:
|
if not any(u.id == user_id for u in User.query.all()):
|
||||||
raise HTTPException(status_code=400, detail="Invalid token")
|
raise HTTPException(status_code=400, detail="Invalid user")
|
||||||
|
|
||||||
|
user = User.query.filter_by(id=user_id).first()
|
||||||
|
user.token = None
|
||||||
|
user.is_active = False
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"message": "Logout successful",
|
"message": "Logout successful",
|
||||||
"token": token,
|
"user": user_id,
|
||||||
|
"session_ended": True,
|
||||||
"features": {
|
"features": {
|
||||||
"cleared_sessions": True,
|
"can_relogin": True,
|
||||||
"status": "logged_out"
|
"cooldown_period": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# migrations/versions/001_create_user_sessions.py
|
|
||||||
"""create user sessions table
|
|
||||||
|
|
||||||
Revision ID: 001
|
|
||||||
Revises:
|
|
||||||
Create Date: 2024-01-10
|
|
||||||
|
|
||||||
"""
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
|
||||||
|
|
||||||
def upgrade():
|
|
||||||
op.create_table(
|
|
||||||
'user_sessions',
|
|
||||||
sa.Column('id', sa.String(), nullable=False),
|
|
||||||
sa.Column('token', sa.String(), nullable=False),
|
|
||||||
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
||||||
sa.PrimaryKeyConstraint('id')
|
|
||||||
)
|
|
||||||
|
|
||||||
def downgrade():
|
|
||||||
op.drop_table('user_sessions')
|
|
Loading…
x
Reference in New Issue
Block a user