Bläddra i källkod

報名課程 access token

Mia Cheng 1 år sedan
förälder
incheckning
e73fdc6cd4
2 ändrade filer med 44 tillägg och 1 borttagningar
  1. 3 1
      app/api/__init__.py
  2. 41 0
      app/api/registration.py

+ 3 - 1
app/api/__init__.py

@@ -4,10 +4,12 @@ from app.api.users import users
 from app.api.classes import classes
 from app.api.news import news
 from app.api.guidance import guidance
+from app.api.registration import registration
 
 routers = APIRouter()
 
 routers.include_router(users, prefix="/api", tags=["登入/註冊"])
 routers.include_router(classes, prefix="/api", tags=["課程列表"])
 routers.include_router(news, prefix="/api", tags=["最新消息"])
-routers.include_router(guidance, prefix="/api", tags=["輔導團紀錄"])
+routers.include_router(guidance, prefix="/api", tags=["輔導團紀錄"])
+routers.include_router(registration, prefix="/api", tags=["報名課程"])

+ 41 - 0
app/api/registration.py

@@ -0,0 +1,41 @@
+from fastapi_login import LoginManager
+from fastapi import APIRouter, Form, Depends, HTTPException, File, UploadFile
+from typing import List,Optional,Union
+from fastapi.responses import FileResponse
+from random import randint
+from fastapi.security import OAuth2PasswordRequestForm
+from app.models.models import Guidance_group,User
+from app.api import deps
+from sqlalchemy.orm import Session
+from typing import Any, Dict
+import secrets
+from fastapi_login.exceptions import InvalidCredentialsException
+from fastapi_login import LoginManager
+from datetime import timedelta,datetime
+from jose import jwt
+from emails.template import JinjaTemplate
+from tortoise.queryset import Q
+from fastapi.responses import HTMLResponse
+
+from app.api.users import manager
+
+registration = APIRouter()
+
+async def check_token(access_token: str):
+
+    result = await User.filter(token=access_token).first()
+    
+    if not result:
+        print("no access")
+        return None
+    
+    user_id = result.id
+
+    return user_id
+
+@registration.get("/protected")
+def protected_route(user_id=Depends(check_token)):
+    if not user_id:
+        return {"message": "no access"}
+
+    return {'user': user_id}