This commit is contained in:
@@ -974,12 +974,14 @@ def get_current_wechat_user(request):
|
|||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
summary="微信小程序登录",
|
summary="微信小程序登录",
|
||||||
description="支持通过 code 登录,以及可选的 phone_code 用于直接获取手机号并合并 Web 用户账号。同时支持传入用户基本信息(gender, country, province, city)。",
|
description="支持通过 code 登录,以及可选的 phone_code 用于直接获取手机号并合并 Web 用户账号。同时支持传入用户基本信息(nickname, avatar_url, gender, country, province, city)。",
|
||||||
request={
|
request={
|
||||||
'application/json': {
|
'application/json': {
|
||||||
'properties': {
|
'properties': {
|
||||||
'code': {'type': 'string', 'description': 'wx.login获取的code'},
|
'code': {'type': 'string', 'description': 'wx.login获取的code'},
|
||||||
'phone_code': {'type': 'string', 'description': 'getPhoneNumber获取的code (可选)'},
|
'phone_code': {'type': 'string', 'description': 'getPhoneNumber获取的code (可选)'},
|
||||||
|
'nickname': {'type': 'string', 'description': '昵称 (可选)'},
|
||||||
|
'avatar_url': {'type': 'string', 'description': '头像URL (可选)'},
|
||||||
'gender': {'type': 'integer', 'description': '性别 0未知 1男 2女 (可选)'},
|
'gender': {'type': 'integer', 'description': '性别 0未知 1男 2女 (可选)'},
|
||||||
'country': {'type': 'string', 'description': '国家 (可选)'},
|
'country': {'type': 'string', 'description': '国家 (可选)'},
|
||||||
'province': {'type': 'string', 'description': '省份 (可选)'},
|
'province': {'type': 'string', 'description': '省份 (可选)'},
|
||||||
@@ -996,6 +998,8 @@ def wechat_login(request):
|
|||||||
phone_code = request.data.get('phone_code')
|
phone_code = request.data.get('phone_code')
|
||||||
|
|
||||||
# 获取可选的用户信息
|
# 获取可选的用户信息
|
||||||
|
nickname = request.data.get('nickname')
|
||||||
|
avatar_url = request.data.get('avatar_url')
|
||||||
gender = request.data.get('gender')
|
gender = request.data.get('gender')
|
||||||
country = request.data.get('country')
|
country = request.data.get('country')
|
||||||
province = request.data.get('province')
|
province = request.data.get('province')
|
||||||
@@ -1095,9 +1099,8 @@ def wechat_login(request):
|
|||||||
user = mp_user
|
user = mp_user
|
||||||
|
|
||||||
# 更新手机号
|
# 更新手机号
|
||||||
if not user.phone_number:
|
user.phone_number = phone_number
|
||||||
user.phone_number = phone_number
|
user.save()
|
||||||
user.save()
|
|
||||||
else:
|
else:
|
||||||
# 同一个用户
|
# 同一个用户
|
||||||
user = mp_user
|
user = mp_user
|
||||||
@@ -1145,6 +1148,10 @@ def wechat_login(request):
|
|||||||
user.unionid = unionid
|
user.unionid = unionid
|
||||||
|
|
||||||
# 更新用户基本信息 (如果有传入)
|
# 更新用户基本信息 (如果有传入)
|
||||||
|
if nickname:
|
||||||
|
user.nickname = nickname
|
||||||
|
if avatar_url:
|
||||||
|
user.avatar_url = avatar_url
|
||||||
if gender is not None:
|
if gender is not None:
|
||||||
user.gender = gender
|
user.gender = gender
|
||||||
if country:
|
if country:
|
||||||
|
|||||||
Reference in New Issue
Block a user