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 相关文章推荐
如果文字过长,则将过长的部分变成省略号显示
Jun 26 Javascript
json简单介绍
Jun 10 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
Dec 06 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php数据库备份还原类分享
2014/03/20 PHP
php实现文件预览功能
2017/05/23 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
javascript模拟命名空间
2015/04/17 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
详解vue 命名视图
2019/08/14 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
python单例模式实例分析
2015/04/08 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python实现简单http服务器
2018/04/12 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Python requests库用法实例详解
2018/08/14 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
python爬虫增加访问量的方法
2019/08/22 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
python 写一个文件分发小程序
2020/12/05 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
迟到早退检讨书
2014/02/10 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs