使用场景:微信app扫码进入h5页面,然后进行微信授权,用户授权之后就登陆成功了
微信开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
后端代码:
class Login(Resource):
"""
登陆
"""
def get(self):
parse = reqparse.RequestParser()
parse.add_argument('code', type=str, location='args')
parse.add_argument('state', location='args') # 传额外的参数
params = parse.parse_args()
try:
app_id = 'xxxxxxx'
app_secret = 'xxxxxxxx'
code = params.get("code")
if not code:
raise ValueError("code不能为空")
access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={}" \
"&secret={}&code={}&grant_type=authorization_code".format(app_id, app_secret, code)
resp = requests.get(access_token_url)
content = resp.json()
if "errcode" in content:
errmsg = content.get("errmsg")
logger.error("获取access_token失败:{}".format(errmsg))
raise ValueError("获取access_token失败:{}".format(errmsg))
else:
access_token = content.get("access_token")
# 存储用户信息
redirect_url = "xxxxxx" # 重定url
response = make_response(redirect(redirect_url))
return response
except Exception as exc:
return {"success": False, "msg": str(exc)}

2109

被折叠的 条评论
为什么被折叠?



