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编程起步(第六课)
Feb 27 Javascript
JScript内置对象Array中元素的删除方法
Mar 08 Javascript
javascript 清除输入框中的数据
Apr 13 Javascript
Javascript中的高阶函数介绍
Mar 15 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
Oct 30 Javascript
JS原型与原型链的深入理解
Feb 15 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
Mar 23 Javascript
利用node.js如何创建子进程详解
Dec 09 Javascript
新版小程序登录授权的方法
Dec 12 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 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中常见的mongodb查询操作
2013/06/20 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
php的curl封装类用法实例
2014/11/07 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python中的urllib模块使用详解
2015/07/07 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python内置函数delattr的具体用法
2017/11/23 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python区分不同数据类型的方法
2019/10/14 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
Django之form组件自动校验数据实现
2020/01/14 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
大学生自我鉴定范文
2013/12/28 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
买房协议书范本
2014/10/23 职场文书
工作失职检讨书
2015/01/26 职场文书
首次购房证明
2015/06/19 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Java内存模型之happens-before概念详解
2021/06/13 Java/Android