feat: 后端鉴权获取openid

This commit is contained in:
hackrobot
2024-03-24 22:43:32 +08:00
parent f819a5457c
commit e40688816d
2 changed files with 16 additions and 4 deletions

Binary file not shown.

20
main.py
View File

@@ -25,6 +25,7 @@ from lxml import etree
import xml.dom.minidom
from pydantic import BaseModel
import utils
import requests
models.Base.metadata.create_all(bind=engine)
@@ -45,25 +46,36 @@ def get_db():
async def root():
return {"message": "Hello World"}
# 微信登录
@app.get("/login")
def read_users(code, db: Session = Depends(get_db)):
print('code--',code)
payload = {'appid': 'wxa55815dd741a540d', 'secret': '82ce78719cc6b6e4a8ff738704d5b6cc','js_code':code,'grant_type':'authorization_code'}
res = requests.get('https://api.weixin.qq.com/sns/jscode2session', params=payload)
r=res.json()
# 返回参数 session_key/unionid/errmsg/openid/errcode
print('r----',r)
# "errmsg":r['errmsg'],,"errcode":r['errcode']
return {"session_key":r['session_key'],"unionid":r['unionid'],"openid":r['openid']}
# 创建用户
@app.post("/users/")
@app.post("/users")
# schemas.UserCreate决定了swagger文档
def create_user(user: schemas.User, db: Session = Depends(get_db)):
print('user', user)
print('typeuser', type(user))
# 检测是否存在wxid
db_user = crud.get_user_by_wxid(db, user.wxid)
print('db_user', db_user)
if db_user:
raise HTTPException(status_code=400, detail="wxid already registered")
return crud.create_user(db=db, user=user)
# 分页查询-用户
@app.get("/users/")
@app.get("/users")
def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
users = crud.get_users(db, skip=skip, limit=limit)
return users