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 相关文章推荐
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
Apr 27 Javascript
Jquery封装tab自动切换效果的具体实现
Jul 13 Javascript
jQuery的end()方法使用详解
Jul 15 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
Vue.js在使用中的一些注意知识点
Apr 29 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
微信小程序文章详情页面实现代码
Sep 10 Javascript
AJAX实现指定部分页面刷新效果
Oct 16 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
php xml实例 留言本
2009/03/20 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
详解python爬虫系列之初识爬虫
2019/04/06 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
python中web框架的自定义创建
2019/09/08 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
体育教育专业毕业生自荐信
2013/11/15 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Golang的继承模拟实例
2021/06/30 Golang
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android