增加email域名验证
This commit is contained in:
parent
52b2483bc7
commit
db5226549f
|
@ -6,6 +6,7 @@ from sqlalchemy.orm import Session
|
||||||
from Context.common import ctx
|
from Context.common import ctx
|
||||||
from Crud.UserCrud import get_user_by_email, create_user, rest_user_password
|
from Crud.UserCrud import get_user_by_email, create_user, rest_user_password
|
||||||
from Crud import AppCrud
|
from Crud import AppCrud
|
||||||
|
from CrudModel.AllowedEmail import allowed_email_crud, AllowedEmailQuery
|
||||||
from Schemas import UserSchemas
|
from Schemas import UserSchemas
|
||||||
from Schemas.ApiCommonSchemas import CommonRes
|
from Schemas.ApiCommonSchemas import CommonRes
|
||||||
from Utils.AuthUtils import Token, token_data_depend, create_token
|
from Utils.AuthUtils import Token, token_data_depend, create_token
|
||||||
|
@ -69,7 +70,7 @@ def login(body: UserSchemas.LoginReqBody, db: Session = Depends(get_db)):
|
||||||
def login(body: UserSchemas.LoginReqBody, db: Session = Depends(get_db)):
|
def login(body: UserSchemas.LoginReqBody, db: Session = Depends(get_db)):
|
||||||
if not body.app_id:
|
if not body.app_id:
|
||||||
raise HTTPException(status_code=202, detail="未传入应用ID")
|
raise HTTPException(status_code=202, detail="未传入应用ID")
|
||||||
app = AppCrud.get_app_by_id(db,body.app_id)
|
app = AppCrud.get_app_by_id(db, body.app_id)
|
||||||
if not app:
|
if not app:
|
||||||
raise HTTPException(status_code=202, detail="应用信息错误")
|
raise HTTPException(status_code=202, detail="应用信息错误")
|
||||||
# 图片验证码校验
|
# 图片验证码校验
|
||||||
|
@ -100,6 +101,16 @@ def register(body: UserSchemas.RegisterReqBody, db: Session = Depends(get_db)):
|
||||||
user_obj = get_user_by_email(db, body.email)
|
user_obj = get_user_by_email(db, body.email)
|
||||||
if user_obj is not None:
|
if user_obj is not None:
|
||||||
raise HTTPException(status_code=202, detail="该邮箱已注册")
|
raise HTTPException(status_code=202, detail="该邮箱已注册")
|
||||||
|
# 判断邮箱是否合规
|
||||||
|
count, item_list = allowed_email_crud.query(db, AllowedEmailQuery())
|
||||||
|
email_checked = False
|
||||||
|
for item in item_list:
|
||||||
|
if body.email.endswith(item.email):
|
||||||
|
email_checked = True
|
||||||
|
break
|
||||||
|
if not email_checked:
|
||||||
|
raise HTTPException(status_code=202, detail="该域名邮箱不允许注册")
|
||||||
|
|
||||||
# 邮箱验证码校验
|
# 邮箱验证码校验
|
||||||
check_res = EmailVerifyCode.check_code(body.email, body.email_verify_code)
|
check_res = EmailVerifyCode.check_code(body.email, body.email_verify_code)
|
||||||
if not check_res:
|
if not check_res:
|
||||||
|
|
|
@ -20,7 +20,7 @@ class LoginReqBody(BaseModel):
|
||||||
|
|
||||||
|
|
||||||
class EmailSendReqBody(BaseModel):
|
class EmailSendReqBody(BaseModel):
|
||||||
email: EMailRegex = "xxxx@fecr.com.cn"
|
email: str = "xxxx@fecr.com.cn"
|
||||||
|
|
||||||
|
|
||||||
class UserInfo(BaseModel):
|
class UserInfo(BaseModel):
|
||||||
|
@ -55,13 +55,13 @@ class LoginResBody(UserInfo):
|
||||||
|
|
||||||
|
|
||||||
class RegisterReqBody(BaseModel):
|
class RegisterReqBody(BaseModel):
|
||||||
email: EMailRegex
|
email: str
|
||||||
password: passwordRegex
|
password: passwordRegex
|
||||||
email_verify_code: str
|
email_verify_code: str
|
||||||
|
|
||||||
|
|
||||||
class RestPasswordReqBody(BaseModel):
|
class RestPasswordReqBody(BaseModel):
|
||||||
email: EMailRegex
|
email: str
|
||||||
password: passwordRegex
|
password: passwordRegex
|
||||||
email_verify_code: str
|
email_verify_code: str
|
||||||
|
|
||||||
|
|
|
@ -139,7 +139,7 @@ class CRUDBase(Generic[DbModelType, ModelType, IdSchemaType, CreateSchemaType, U
|
||||||
db.query(self.db_model).filter_by(id=update_model_obj.id).update(update_model_obj.dict())
|
db.query(self.db_model).filter_by(id=update_model_obj.id).update(update_model_obj.dict())
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
def query(self, db: Session, params: QuerySchemaType) -> [int, List[ModelType]]:
|
def query(self, db: Session, params: QuerySchemaType) -> [int]:
|
||||||
params_dict = params.dict()
|
params_dict = params.dict()
|
||||||
query = db.query(self.db_model)
|
query = db.query(self.db_model)
|
||||||
for key, value in params_dict.items():
|
for key, value in params_dict.items():
|
||||||
|
@ -188,12 +188,6 @@ def create_crud_model(db_model: Base, name, auto_create_keys=['id'], index_key='
|
||||||
def auto_create_crud(db_model: Base, name, chinese_name="", auto_create_keys=['id'], index_key='id'):
|
def auto_create_crud(db_model: Base, name, chinese_name="", auto_create_keys=['id'], index_key='id'):
|
||||||
"""
|
"""
|
||||||
自动创建CRUD类
|
自动创建CRUD类
|
||||||
:param db_model:
|
|
||||||
:param name:
|
|
||||||
:param chinese_name:
|
|
||||||
:param auto_create_keys:
|
|
||||||
:param index_key:
|
|
||||||
:return:
|
|
||||||
"""
|
"""
|
||||||
[model, model_id, model_create, model_update, model_query] = create_crud_model(db_model, name,
|
[model, model_id, model_create, model_update, model_query] = create_crud_model(db_model, name,
|
||||||
auto_create_keys, index_key)
|
auto_create_keys, index_key)
|
||||||
|
|
Loading…
Reference in New Issue