tomoya пре 2 година
родитељ
комит
78269651ef

+ 16 - 0
backend/app/app/api/api_v1/endpoints/login.py

@@ -16,6 +16,9 @@ from app.utils import (
     verify_password_reset_token,
 )
 
+from google.oauth2 import id_token
+from google.auth.transport import requests
+
 router = APIRouter()
 
 
@@ -41,6 +44,19 @@ def login_access_token(
         "token_type": "bearer",
     }
 
+@router.post("/login/google/access-token", response_model=schemas.Token)
+def login_access_token(
+    access_token: str, db: Session = Depends(deps.get_db), 
+) -> Any:
+    CLIENT_ID = "136107811725-n71808u8t465f1afhpe2e5j7mn606nd8.apps.googleusercontent.com"
+    idinfo = id_token.verify_oauth2_token(access_token, requests.Request(), CLIENT_ID)
+    return {
+        "access_token": security.create_access_token(
+            0, expires_delta=access_token
+        ),
+        "token_type": "bearer",
+    }
+
 
 @router.post("/login/test-token", response_model=schemas.User)
 def test_token(current_user: models.User = Depends(deps.get_current_user)) -> Any:

+ 1 - 0
backend/app/app/db/base.py

@@ -4,3 +4,4 @@ from app.db.base_class import Base  # noqa
 from app.models.user import User  # noqa
 from app.models.video import Video
 from app.models.enum import Progress, Membership
+from app.models.character import Character

+ 6 - 1
backend/app/app/models/character.py

@@ -3,4 +3,9 @@ from typing import TYPE_CHECKING
 from sqlalchemy import Column, ForeignKey, Integer, String
 from sqlalchemy.orm import relationship
 
-from app.db.base_class import Base
+from app.db.base_class import Base
+
+class Character(Base):
+  id = Column(Integer, primary_key=True, index=True)
+  naem = Column(String(20), index=True)
+  stored_file_name = Column(String(30), unique=True, nullable=False)

+ 1 - 1
backend/app/app/models/video.py

@@ -17,7 +17,7 @@ class Video(Base):
   progress_state = Column(String(10), 
                     ForeignKey("progress.state", ondelete="RESTRICT", onupdate="CASCADE"),
                     default="waiting")
-  created_date = Column(DateTime)
+  created_datetime = Column(DateTime)
   length = Column(Integer)
   owner_id = Column(Integer, ForeignKey("user.id"))
   owner = relationship("User", back_populates="videos")

+ 1 - 0
backend/app/pyproject.toml

@@ -26,6 +26,7 @@ psycopg2-binary = "^2.8.5"
 alembic = "^1.9.0"
 sqlalchemy = "^1.4.0"
 pytest = "^7.2.0"
+google-auth = "^2.16.2"
 python-jose = {extras = ["cryptography"], version = "^3.3.0"}
 
 [tool.poetry.dev-dependencies]