mekasu0124

Untitled

Jun 12th, 2024
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. # root/backend/main.py
  2. import secrets
  3.  
  4. from datetime import datetime, timedelta
  5.  
  6. from fastapi import FastAPI, Depends, HTTPException, status
  7. from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
  8. from sqlalchemy.orm import Session
  9. from starlette.middleware import Middleware
  10. from starlette.middleware.cors import CORSMiddleware
  11.  
  12. from api.models.models import Base, User, Session
  13. from api.database.database import SessionLocal, engine
  14. from api.routers.routes import router
  15.  
  16. cors_middleware = Middleware(
  17.     CORSMiddleware,
  18.     allow_origins=[
  19.         "http://localhost:3000",
  20.         "http://localhost:3001",
  21.         "http://127.0.0.1:3000",
  22.         "http://127.0.0.1:3001",
  23.         "http://192.168.4.34:3000",
  24.         "http://192.168.4.35:3000"
  25.     ],
  26.     allow_credentials=True,
  27.     allow_headers=["*"],
  28.     allow_methods=["*"]
  29. )
  30.  
  31. app = FastAPI(middleware=[cors_middleware])
  32. app.include_router(router)
  33.  
  34. oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
  35.  
  36. def get_db():
  37.     db = SessionLocal()
  38.     try:
  39.         yield db
  40.     finally:
  41.         db.close()
  42.  
  43. def generate_session_token(db: Session, user_id: int):
  44.     session_token = secrets.token_urlsafe(32)
  45.     expiration_date = datetime.utcnow() + timedelta(days=30)
  46.     session = Session(user_id=user_id, token=session_token, expiration_date=expiration_date)
  47.     db.add(session)
  48.     db.commit()
  49.     db.refresh(session)
  50.     return session_token
  51.  
  52. Base.metadata.create_all(bind=engine)
Advertisement
Add Comment
Please, Sign In to add comment