feat: 后端鉴权获取openid
This commit is contained in:
Binary file not shown.
20
main.py
20
main.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user