fix:微信登录认证问题

This commit is contained in:
ktianc 2023-05-06 14:05:50 +08:00
parent 4320d2db82
commit f33b319203
2 changed files with 10 additions and 5 deletions

View File

@ -11,7 +11,7 @@ from fastapi.security import OAuth2PasswordBearer
"""
系统版本
"""
VERSION = "1.7.8"
VERSION = "1.7.9"
"""安全警告: 不要在生产中打开调试运行!"""
DEBUG = True

View File

@ -20,7 +20,6 @@ PassLib 是一个用于处理哈希密码的很棒的 Python 包。它支持许
"""
from datetime import timedelta
import jwt
from aioredis import Redis
from fastapi import APIRouter, Depends, Request, Body
from sqlalchemy.ext.asyncio import AsyncSession
@ -35,6 +34,7 @@ from apps.vadmin.auth.crud import MenuDal, UserDal
from .current import FullAdminAuth
from .validation.auth import Auth
from utils.wx.oauth import WXOAuth
import jwt
app = APIRouter()
@ -75,7 +75,12 @@ async def login_for_access_token(
@app.post("/wx/login/", summary="微信服务端一键登录", description="员工登录通道")
async def wx_login_for_access_token(data: WXLoginForm, db: AsyncSession = Depends(db_getter), rd: Redis = Depends(redis_getter)):
async def wx_login_for_access_token(
request: Request,
data: WXLoginForm,
db: AsyncSession = Depends(db_getter),
rd: Redis = Depends(redis_getter)
):
try:
if data.platform != "1" or data.method != "2":
raise ValueError("无效参数")
@ -86,9 +91,9 @@ async def wx_login_for_access_token(data: WXLoginForm, db: AsyncSession = Depend
data.telephone = telephone
user = await UserDal(db).get_data(telephone=telephone, v_return_none=True)
if not user:
raise ValueError("手机号不存在")
raise ValueError("手机号不存在")
elif not user.is_active:
raise ValueError("手机号已被冻结")
raise ValueError("手机号已被冻结")
except ValueError as e:
await VadminLoginRecord.create_login_record(db, data, False, request, {"message": str(e)})
return ErrorResponse(msg=str(e))