update
This commit is contained in:
parent
2a49793d39
commit
b1b7e05b99
@ -60,64 +60,7 @@ async def send_verify_code(request: VerifyCodeRequest):
|
||||
)
|
||||
|
||||
return success_response(message="验证码已发送")
|
||||
|
||||
# except Exception as e:
|
||||
# logging.error(f"发送验证码失败: {str(e)}")
|
||||
# return error_response(message=f"发送验证码失败: {str(e)}")
|
||||
|
||||
@router.post("/login")
|
||||
async def login(
|
||||
user_login: UserLogin,
|
||||
db: Session = Depends(get_db),
|
||||
response: Response = None,
|
||||
request: Request = None
|
||||
):
|
||||
"""用户登录"""
|
||||
phone = user_login.phone
|
||||
verify_code = user_login.verify_code
|
||||
|
||||
# 验证验证码
|
||||
stored_code = redis_client.get_client().get(f"verify_code:{phone}")
|
||||
if not stored_code or stored_code != verify_code:
|
||||
return error_response(message="验证码错误或已过期")
|
||||
|
||||
redis_client.get_client().delete(f"verify_code:{phone}")
|
||||
|
||||
# 查找或创建用户
|
||||
user = db.query(UserDB).filter(UserDB.phone == phone).first()
|
||||
if not user:
|
||||
# 生成用户编码
|
||||
user_code = generate_user_code(db)
|
||||
|
||||
user = UserDB(
|
||||
nickname=f"蜜友{phone[-4:]}",
|
||||
phone=phone,
|
||||
user_code=user_code,
|
||||
referral_code=user_login.referral_code,
|
||||
password=get_password_hash("123456"),
|
||||
roles=[UserRole.USER]
|
||||
)
|
||||
db.add(user)
|
||||
db.flush() # 获取用户ID
|
||||
|
||||
db.commit()
|
||||
db.refresh(user)
|
||||
|
||||
# 创建访问令牌
|
||||
access_token = create_access_token(
|
||||
data={"phone": user.phone}
|
||||
)
|
||||
|
||||
request.session["access_token"] = access_token
|
||||
|
||||
return success_response(
|
||||
message="登录成功",
|
||||
data={
|
||||
"user": UserInfo.model_validate(user),
|
||||
"access_token": access_token,
|
||||
"token_type": "bearer"
|
||||
}
|
||||
)
|
||||
|
||||
@router.get("/info", response_model=ResponseModel)
|
||||
async def get_user_info(
|
||||
@ -171,53 +114,6 @@ async def get_user_info(
|
||||
|
||||
return success_response(data=user_data)
|
||||
|
||||
@router.post("/phone-login", response_model=ResponseModel)
|
||||
async def phone_login(
|
||||
login_data: PhoneLoginRequest,
|
||||
db: Session = Depends(get_db),
|
||||
response: Response = None,
|
||||
request: Request = None
|
||||
):
|
||||
""" 手机号登录(测试环境) """
|
||||
if not settings.DEBUG:
|
||||
return error_response(code=400, message="测试环境不支持手机号登录")
|
||||
|
||||
# 查找或创建用户
|
||||
user = db.query(UserDB).filter(UserDB.phone == login_data.phone).first()
|
||||
if not user:
|
||||
# 生成用户编码
|
||||
user_code = generate_user_code(db)
|
||||
|
||||
user = UserDB(
|
||||
nickname=f"蜜友{login_data.phone[-4:]}",
|
||||
phone=login_data.phone,
|
||||
user_code=user_code,
|
||||
referral_code=login_data.referral_code,
|
||||
password=get_password_hash("123456"),
|
||||
roles=[UserRole.USER]
|
||||
)
|
||||
db.add(user)
|
||||
db.flush()
|
||||
|
||||
db.commit()
|
||||
db.refresh(user)
|
||||
|
||||
# 创建访问令牌
|
||||
access_token = create_access_token(
|
||||
data={"phone": user.phone}
|
||||
)
|
||||
|
||||
request.session["access_token"] = access_token
|
||||
|
||||
return success_response(
|
||||
message="登录成功",
|
||||
data={
|
||||
"user": UserInfo.model_validate(user),
|
||||
"access_token": access_token,
|
||||
"token_type": "bearer"
|
||||
}
|
||||
)
|
||||
|
||||
@router.post("/logout", response_model=ResponseModel)
|
||||
async def logout(
|
||||
response: Response,
|
||||
|
||||
@ -14,7 +14,7 @@ from app.core.wecombot import WecomBot
|
||||
from app.api.endpoints import wecom
|
||||
from app.api.endpoints import feedback
|
||||
from starlette.middleware.sessions import SessionMiddleware
|
||||
|
||||
import os
|
||||
|
||||
# 创建数据库表
|
||||
Base.metadata.create_all(bind=engine)
|
||||
@ -26,7 +26,6 @@ app = FastAPI(
|
||||
docs_url="/docs" if settings.DEBUG else None
|
||||
)
|
||||
|
||||
|
||||
app.default_response_class = CustomJSONResponse
|
||||
|
||||
# 配置 CORS
|
||||
@ -94,8 +93,9 @@ async def exception_handler(request, exc):
|
||||
# 发送企业微信消息
|
||||
wecom_bot = WecomBot(settings.URL_WECOMBOT_SYS_EXCEPTION)
|
||||
|
||||
env = os.getenv("APP_ENV", "dev").lower()
|
||||
|
||||
exception_log = f"""**API异常**
|
||||
exception_log = f"""{env}环境**API异常**
|
||||
**请求信息**
|
||||
> 请求方法:{request.method}
|
||||
> 请求URL:{request.url}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user