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})

Related articles: