mekasu0124

Untitled

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