Spaces:
Sleeping
Sleeping
update. added session token and user validity
Browse files- services.py +11 -1
services.py
CHANGED
|
@@ -47,6 +47,7 @@ def create_access_token(data: dict, expires_delta: datetime.timedelta = None):
|
|
| 47 |
expire = datetime.datetime.utcnow() + datetime.timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
| 48 |
to_encode.update({"exp": expire})
|
| 49 |
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
|
|
|
| 50 |
return encoded_jwt
|
| 51 |
|
| 52 |
# JWT token verification function
|
|
@@ -77,7 +78,8 @@ async def login_user(user: User):
|
|
| 77 |
raise HTTPException(status_code=401, detail="Invalid credentials")
|
| 78 |
# Create JWT token
|
| 79 |
access_token = create_access_token(data={"sub": user.username})
|
| 80 |
-
|
|
|
|
| 81 |
|
| 82 |
# API to validate the session token
|
| 83 |
@app.get("/api/validate-token")
|
|
@@ -123,3 +125,11 @@ async def update_user(username: str, user: User):
|
|
| 123 |
raise HTTPException(status_code=404, detail="User not found")
|
| 124 |
USERS[username] = user.password
|
| 125 |
return {"message": f"User {username} password updated successfully"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
expire = datetime.datetime.utcnow() + datetime.timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
| 48 |
to_encode.update({"exp": expire})
|
| 49 |
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
| 50 |
+
print("encoded jwt", encoded_jwt)
|
| 51 |
return encoded_jwt
|
| 52 |
|
| 53 |
# JWT token verification function
|
|
|
|
| 78 |
raise HTTPException(status_code=401, detail="Invalid credentials")
|
| 79 |
# Create JWT token
|
| 80 |
access_token = create_access_token(data={"sub": user.username})
|
| 81 |
+
print("access token", access_token)
|
| 82 |
+
return {"token": access_token}
|
| 83 |
|
| 84 |
# API to validate the session token
|
| 85 |
@app.get("/api/validate-token")
|
|
|
|
| 125 |
raise HTTPException(status_code=404, detail="User not found")
|
| 126 |
USERS[username] = user.password
|
| 127 |
return {"message": f"User {username} password updated successfully"}
|
| 128 |
+
|
| 129 |
+
# New route to check if a user exists by username
|
| 130 |
+
@app.get("/api/user-exists/{username}")
|
| 131 |
+
async def user_exists(username: str):
|
| 132 |
+
"""Check if a user exists based on the username."""
|
| 133 |
+
if username in USERS:
|
| 134 |
+
return {"message": f"User '{username}' exists"}
|
| 135 |
+
raise HTTPException(status_code=404, detail="User not found")
|