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文件的函数代码分享
Jul 28 Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
js实现缓冲运动效果的方法
Apr 10 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 Javascript
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 Javascript
three.js 制作动态二维码的示例代码
Jul 31 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图片上传存储源码并且可以预览
2011/08/26 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
PHP函数超时处理方法
2016/02/14 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
python2 与 python3 实现共存的方法
2018/07/12 Python
python查看列的唯一值方法
2018/07/17 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Python列表与元组的异同详解
2019/07/02 Python
python 多进程队列数据处理详解
2019/12/23 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
行政部主管岗位职责
2013/12/28 职场文书
综合实践活动方案
2014/02/14 职场文书
家长给学校的建议书
2014/05/15 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
淘宝店策划方案
2014/06/07 职场文书
建筑工地标语
2014/06/18 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
小孩不笨观后感
2015/06/03 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis