Commit 985e20d4 authored by xianyang's avatar xianyang

验证码 验证

parent 03b1e1bb
......@@ -8,6 +8,7 @@ from app.api.statement.guild import query_token
from app.api.users import crud, schemas
from app.api.users.login_verification import authenticate_user, create_access_token, get_user, authenticate_pwd
from app.api.users.schemas import UserLoginForm, GoogleCode, GoogleLogin
from core.config.env import red
from libs.google_code import get_qrcode, google_verify_result
from libs.img_code import imageCode
from libs.result_format import HttpResultResponse, HttpMessage
......@@ -24,6 +25,11 @@ def img_code():
@router.post("/login")
def login(form_data: UserLoginForm, db: Session = Depends(get_db)):
user_info = authenticate_user(db=db, form_data=form_data)
code = red.get('VerifyCode')
if not code:
return HttpResultResponse(code=500, msg="验证码已过期")
if form_data.verify != code:
return HttpResultResponse(code=500, msg="验证码错误")
if not user_info.get("result"):
return HttpResultResponse(code=500, msg=user_info.get("msg"), data={})
return HttpResultResponse(msg=HttpMessage.LOGIN_SUCCESS, data={"google_key": user_info.get("google_key")})
......
......@@ -4,7 +4,7 @@
"""
import os
import redis
from pydantic import BaseSettings
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
......@@ -44,6 +44,12 @@ class Env(BaseSettings):
"pwd": "c1ea602311a369f6",
"user": "root"
}
Redis: dict = {
"host": "43.138.132.9",
"password": "fanjiao2022",
"port": 6379,
"redis_db": 9
}
SECRET_KEY: str = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
ALGORITHM: str = "HS256"
PASSWORD: str = "fj123456"
......@@ -65,3 +71,8 @@ class ProdEnv(Env):
env = Env() # 开发环境
# env = TestingEnv() # 测试环境
# env = ProdEnv() # 生产环境
redis_data = env.Redis
pool = redis.ConnectionPool(host=redis_data.get("host"), port=redis_data.get("port"), password=redis_data.get("password"),
db=redis_data.get("redis_db"), decode_responses=True)
red = redis.StrictRedis(connection_pool=pool)
......@@ -6,7 +6,7 @@ import requests
from PIL import Image, ImageFont, ImageDraw
from six import BytesIO
from core.config.env import client, Bucket, secret_key, region, secret_id, COS_PATH, COS_RERURN_PATH
from core.config.env import client, Bucket, secret_key, region, secret_id, COS_PATH, COS_RERURN_PATH, red
session = requests.session()
......@@ -61,7 +61,7 @@ class imageCode():
buf_str = buf.getvalue()
img = b"data:image/png;base64," + base64.b64encode(buf_str)
session.headers['verify'] = code
print(code)
red.set('VerifyCode', code, 100)
return img.decode('utf-8')
......
......@@ -43,3 +43,4 @@ urllib3==1.26.14
uvicorn==0.20.0
xmltodict==0.13.0
openpyxl==3.1.2
redis==4.3.4
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment