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 相关文章推荐
解javascript 混淆加密收藏
Jan 16 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 Javascript
JS中IP地址与整数相互转换的实现代码
Apr 10 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
vue中slot(插槽)的介绍与使用
Nov 12 Javascript
js操作table中tr的顺序实现上移下移一行的效果
Nov 22 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
详解如何在Javascript中使用Object.freeze()
Oct 18 Javascript
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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
利用js调用后台php进行数据处理原码
2006/10/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
php实现的生成排列算法示例
2019/07/25 PHP
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
layui原生表单验证的实例
2019/09/09 Javascript
Django添加favicon.ico图标的示例代码
2018/08/07 Python
python 获取图片分辨率的方法
2019/01/08 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
数据库笔试题
2013/05/09 面试题
北京振戎融通Java面试题
2015/09/03 面试题
体育教师工作总结的自我评价
2013/10/10 职场文书
物流专业大学应届生求职信
2013/11/03 职场文书
离婚协议书范本样本
2014/08/19 职场文书
小学英语复习计划
2015/01/19 职场文书
关于学习的决心书
2015/02/05 职场文书
捐书活动倡议书
2015/04/27 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL