Vue绑定用户接口实现代码示例


Posted in Javascript onNovember 04, 2020

微博绑定用户接口

oauth/urls.py 中添加路由

urlpatterns = [
path('weibo/binduser/', views.OauthWeiboBindUser.as_view()), #
/oauth/weibo/callback/
]

oauth/views.py 中添加试图函数

class OauthWeiboBindUser(APIView):
 
  permission_classes = (AllowAny,)
 
  def post(self, request):
 
    # 绑定用户, 1. 已注册用户, 2. 未注册用户
    # 1.1 获取用户名, 密码, 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': '参数不全'})
    # 0.判断是否存在此用户
    try:
      user = User.objects.get(username=username)
    except Exception as e:
      user = None
    # 1. 已注册用户
    if user:
      # 1.2 , 如果存在就验证 密码, 验证通过,就绑定, 返回token,登录成功
      if user.check_password(password):
        ou = OauthUser(uid=weibo_uid, user=user, oauth_type='1')
        ou.save()
        payload = jwt_payload_handler(user) # 通过user对象获取到jwt的
payload信息
        token = jwt_encode_handler(payload) # 生成token
        data = jwt_response_payload_handler(token, user)
        data['type'] = '0' # 指定为登录成功
        return Response({'code': 0, 'msg': '登录成功', 'data': data})
      else:
        return Response({'code': 999, 'msg': '密码错误'})
    else:
      # 2. 未注册用户
      # 2.1 生成新用户, 设置用户名密码, 保存, 然后绑定, 返回token, 登录成功
      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' #指定为登录成功
      return Response({'code':0,'msg':'登陆成功','data':data})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
子窗口、父窗口和Silverlight之间的相互调用
Aug 16 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
基于vue.js实现侧边菜单栏
Mar 20 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
JS实现简单的表格增删
Jan 16 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
Vue绑定用户接口实现代码示例
Nov 04 Javascript
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
vant picker+popup 自定义三级联动案例
Nov 04 #Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
Nov 04 #Javascript
vantUI 获得piker选中值的自定义ID操作
Nov 04 #Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 #Javascript
vue项目打包后请求地址错误/打包后跨域操作
Nov 04 #Javascript
原生JavaScript实现贪吃蛇游戏
Nov 04 #Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 #Javascript
You might like
php判断电脑访问、手机访问的例子
2014/05/10 PHP
php简单截取字符串代码示例
2016/10/19 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
js实现消息滚动效果
2017/01/18 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
Python的Flask框架与数据库连接的教程
2015/04/20 Python
使用python实现knn算法
2017/12/20 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
详解python 爬取12306验证码
2019/05/10 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
python读写csv文件实例代码
2019/07/05 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
美国在线珠宝商店:SZUL
2017/02/11 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
内业资料员岗位职责
2014/01/04 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
Golang 并发编程 SingleFlight模式
2022/04/26 Golang