微信登录 校验是否存在用户


在微信扫码登录的时候 限定绑定手机号☟

用户使用手机号码登录后 校验是否已经绑定微信号
微信扫码登录的用户 校验是否已经绑定手机号码
本章使用: python3.6 django MySQL
在微信扫码的登陆的时候 校验没有绑定手机号的话 就跳转绑定手机号

流程图

校验第一次微信扫码

参数 备注 请求方式
参考路由 http://127.0.0.1:8000/Wxbinduser/ 校验第一次扫码微信 GET
code 071xnUkl2wUPo64to1ol2MhKFY1xnUkZ 用户扫码后的code值
state STATE 默认值
class WeXinLogin(APIView):
    def get(self, request):
        code = request.GET.get('code')
        state = request.GET.get("state")
        if not all([code, state]):
            return Response({'code': RET.DBERR, 'message': '缺少code数据'})
        useropenid, usernickname, userheadimgurl, userunionid = get_wechat_user(code)
        try:
            user = User.objects.get(useropenid=useropenid)
        except:
            return Response({'code': RET.USERERR, 'message': '请先注册一个手机号'})
        return Response({'code': RET.OK, 'token': user.jwt_token, 'mobile': user.mobile})

校验是否已经绑定过微信

参数 备注 请求方式
参考路由 http://127.0.0.1:8000/checkWx/ 校验该手机用户是否绑定了微信 GET
class WeXinBindView(APIView):
    """校验是否已经绑定过微信"""
    authentication_classes = [MyBaseAuthentication, ]

    def get(self, request):
        user = is_master(request.user)
        if user.useropenid is None:
            return Response({'code': RET.DBERR, 'message': '您的账号尚未绑定微信,请先绑定微信'})
        return Response({'code': RET.OK})

校验第二次微信扫码

参数 备注 请求方式
参考路由 http://127.0.0.1:8000/UW/ 用户登录成功/第二次扫码-绑定微信 GET
code 071xnUkl2wUPo64to1ol2MhKFY1xnUkZ code值
state STATE 默认值
class MobileBindWeChatView(APIView):
    """手机号码登录成功--绑定微信号"""
    authentication_classes = [MyBaseAuthentication, ]

    def get(self, request):
        code = request.GET.get('code')
        state = request.GET.get("state")
        if not all([code, state]):
            return Response({'code': RET.DBERR, 'message': '缺少code数据'})
        user = is_master(request.user)
        useropenid, usernickname, userheadimgurl, userunionid = get_wechat_user(code)
        user.useropenid = useropenid
        user.usernickname = usernickname
        user.userheadimgurl = userheadimgurl
        user.userunionid = userunionid
        user.state = state
        user.save()
        return Response({'code': RET.OK, 'token': user.jwt_token, 'mobile': user.mobile})

文章作者: 柒仔
文章链接: /article/5/
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 XiaoLiu!
侵权声明: 若无意对您的文章造成侵权,请您留言,博主看到后会及时处理,谢谢。
评论-----昵称和邮箱必填,网址选填
  目录