Work on API tokens

This commit is contained in:
Scott Idem
2021-08-20 14:34:02 -04:00
parent 5bed9aadb4
commit 67b8435e08
2 changed files with 18 additions and 15 deletions

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationEr
from app.db_sql import redis_lookup_id_random
from app.lib_general import *
from .common_field_schema import base_fields, default_num_bytes
from app.models.common_field_schema import base_fields, default_num_bytes
class Api_Base(BaseModel):
@@ -15,8 +15,11 @@ class Api_Base(BaseModel):
log.debug(locals())
id: Optional[int]
name: Optional[str]
secret_key: Optional[str]
enable: Optional[bool]
enable_from: Optional[datetime.datetime] = Field(
default_factory = lambda:datetime.datetime.now,
@@ -26,9 +29,17 @@ class Api_Base(BaseModel):
temporary_token: str = Field(
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
expire_on: Optional[datetime.datetime] = Field(
default_factory=datetime.datetime.now,
# expire_on: datetime.datetime = Field(
# default_factory=datetime.datetime.now,
# )
expire_on: datetime.datetime = Field(
default_factory = lambda:datetime.datetime.now() + datetime.timedelta(seconds=120),
)
# expire_on: Optional[datetime.datetime] = Field(
# default_factory = lambda:datetime.datetime.now,
# )
# expire_on: Optional[datetime.datetime] # = datetime.datetime.now
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
@@ -37,6 +48,7 @@ class Api_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
#fields = base_fields
#Account_Base.update_forward_refs()

View File

@@ -1,5 +1,4 @@
import datetime
#from datetime import datetime, time, timedelta
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union
@@ -139,7 +138,7 @@ async def get_api_temp_token(
x_aether_api_token_expire_on: Optional[str] = Header(None),
response: Response = Response,
):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
table_name_select = 'api_key'
@@ -152,12 +151,13 @@ async def get_api_temp_token(
else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if sql_result:
log.debug(type(sql_result))
log.debug(sql_result)
base_name = Api_Base
log.debug(base_name)
resp_data = base_name(**sql_result).dict(by_alias=True, exclude_unset=False)
log.debug(resp_data)
@@ -166,15 +166,6 @@ async def get_api_temp_token(
log.debug(sql_result)
return mk_resp(data=False, status_code=404, response=response)
#obj_type = 'api'
#result = get_obj_template(
#obj_type=obj_type,
#obj_id=obj_id,
#by_alias=True,
#exclude_unset=True,
#)
#return result
@router.post('', response_model=Resp_Body_Base)
async def post_api_obj(