Vue Binding User Interface Implementation Code Sample
- 2021-09-12 00:09:41
- OfStack
Weibo bound user interface
Add routing in oauth/urls. py
urlpatterns = [
path('weibo/binduser/', views.OauthWeiboBindUser.as_view()), #
/oauth/weibo/callback/
]
Adding attempt function in oauth/views. py
class OauthWeiboBindUser(APIView):
permission_classes = (AllowAny,)
def post(self, request):
# Bind user , 1. Registered user , 2. Unregistered user
# 1.1 Get User Name , Password , weibo_uid
username = request.data.get('username')
password = request.data.get('password')
weibo_uid = request.data.get('weibo_uid')
if not all([username, password, weibo_uid]):
return Response({'code': 999, 'msg': ' Incomplete parameters '})
# 0. Determine whether this user exists
try:
user = User.objects.get(username=username)
except Exception as e:
user = None
# 1. Registered user
if user:
# 1.2 , Verify if it exists Password , Verify through , Just bind , Return token, Login Successful
if user.check_password(password):
ou = OauthUser(uid=weibo_uid, user=user, oauth_type='1')
ou.save()
payload = jwt_payload_handler(user) # Pass user Object gets to the jwt Adj.
payload Information
token = jwt_encode_handler(payload) # Generate token
data = jwt_response_payload_handler(token, user)
data['type'] = '0' # Specify login success
return Response({'code': 0, 'msg': ' Login Successful ', 'data': data})
else:
return Response({'code': 999, 'msg': ' Password error '})
else:
# 2. Unregistered user
# 2.1 Generate a new user , Set username and password , Save , Then bind , Return token, Login Successful
user = User(username=username)
user.set_password(password)
user.save()
ou = OauthUser(uid=weibo_uid, user=user, oauth_type='1')
ou.save()
payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)
data = jwt_response_payload_handler(token, user)
data['type'] = '0' # Specify login success
return Response({'code':0,'msg':' Successful login ','data':data})