diff --git a/endpoints/logout.post.py b/endpoints/logout.post.py index e69de29..2549f27 100644 --- a/endpoints/logout.post.py +++ b/endpoints/logout.post.py @@ -0,0 +1,53 @@ +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy import Column, String, Boolean +from sqlalchemy.ext.declarative import declarative_base + +Base = declarative_base() +router = APIRouter() + +class UserSession(Base): + __tablename__ = "user_sessions" + + id = Column(String, primary_key=True) + token = Column(String) + is_active = Column(Boolean, default=True) + +@router.post("/logout") +async def logout_demo( + token: str = "dummy_jwt_token_123" +): + """Demo logout endpoint""" + if not token: + raise HTTPException(status_code=400, detail="Invalid token") + + return { + "message": "Logout successful", + "token": token, + "features": { + "cleared_sessions": True, + "status": "logged_out" + } + } + +# 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') \ No newline at end of file