Django REST framework+Vue 打造生鲜超市(十三)
目录
生鲜超市(十) 生鲜超市(十一) 生鲜超市(十二) 生鲜超市(十三)
代码下载
教程
学习自慕课网-前端vue结合后端DjangoFramework的在线生鲜超市
十四、social_django 集成第三方登录
14.1.申请应用
进入微博开放平台,首先要经过认证,然后才可以创建应用
地址:http://open.weibo.com/authentication
创建应用

写上应用的名字,创建好后,会有个“App Key”,这个非常重要

OAuth2.0 授权设置
正常情况下,必须经过审核才可以让第三方登录,我们可以先用测试模式来完成。
(1)添加测试用户,可以测试登录

(2)高级信息

14.2.第三方登录
我们用social_django第三方库来实现第三方登录
github地址,上面有使用说明
https://github.com/python-social-auth/social-app-django
(1) 安装
pip install social-auth-app-django
(2)INSTALL_APP中配置
'social_django',
(3)生成表
只需要做migrate,因为migration的文件已经生成好了
python manage.py migrate
可以看到数据库中多了五张表

(4) 添加到AUTHENTICATION_BACKENDS中
settings
# 设置邮箱和用户名和手机号均可登录
AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend',
'social_core.backends.weibo.WeiboOAuth2',
'social_core.backends.qq.QQOAuth2',
'social_core.backends.weixin.WeixinOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
(5)配置url
# 第三方登录
path('', include('social_django.urls', namespace='social'))
(6)settings里面context_processors
对于template中的用法,向context_processors中加入下面两个
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',

(7)接口
在微博开放平台里面设置回调url,调试的时候设置成本地的就可以了,上线的时候改成服务器的ip地址

(8)APP Secret和App key配置,settings里面
# 第三方登录,里面的值是你的开放平台对应的值
SOCIAL_AUTH_WEIBO_KEY = 'xxxxxxx'
SOCIAL_AUTH_WEIBO_SECRET = 'xxxxxx' SOCIAL_AUTH_QQ_KEY = 'xxxxxxx'
SOCIAL_AUTH_QQ_SECRET = 'xxxxxxx' SOCIAL_AUTH_WEIXIN_KEY = 'xxxxxxx'
SOCIAL_AUTH_WEIXIN_SECRET = 'xxxxxxx'
现在浏览器访问:http://127.0.0.1:8000/login/weibo,就可以登录了,我们还需要设置用户微博登录成功后跳转到首页
#登录成功后跳转到首页
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/index/'
(9)修改源码
登录成功跳到首页,发现还处于未登录状态,我们需要对源码做修改
social_core/actions.py
原始代码
return backend.strategy.redirect(url)
修改为
# 修改源码适配drf
response = backend.strategy.redirect(url)
payload = jwt_payload_handler(user)
response.set_cookie("name",user.name if user.name else user.username, max_age=24*3600)
response.set_cookie("token", jwt_encode_handler(payload), max_age=24*3600)
return response
现在就登录后就正常了。qq和微信的登录,一样的操作,只要去开放平台注册应用,其它跟微博登录一样设置就可以了。
Django REST framework+Vue 打造生鲜超市(十三)的更多相关文章
- Django REST framework+Vue 打造生鲜超市(三)
四.xadmin后台管理 4.1.xadmin添加富文本插件 (1)xadmin/plugins文件夹下新建文件ueditor.py 代码如下: # xadmin/plugins/ueditor.py ...
- Django REST framework+Vue 打造生鲜超市(四)
五.商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django res ...
- Django REST framework+Vue 打造生鲜超市(五)
六.商品类别数据展示 6.1. 商品类别数据接口 (1)商品分类有两个接口: 一种是全部分类:一级二级三级 一种是某一类的分类以及商品详细信息: 开始写商品分类的接口 (2)序列化 给分类添加三级分类 ...
- Django REST framework+Vue 打造生鲜超市(十二)
十三.首页.商品数量.缓存和限速功能开发 13.1.轮播图接口实现 首先把pycharm环境改成本地的,vue中local_host也改成本地 (1)goods/serializer class B ...
- Django REST framework+Vue 打造生鲜超市(一)
一.项目介绍 1.1.掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest Framework 的功能实 ...
- Django REST framework+Vue 打造生鲜超市(二)
三.Models设计 3.1.项目初始化 (1)进虚拟环境下安装 django2.0.2 djangorestframework和相关依赖mark,filter pillow 图片处理 pip in ...
- Django REST framework+Vue 打造生鲜超市(六)
七.用户登录与手机注册 7.1.drf的token (1)INSTALL_APP中添加 INSTALLED_APPS = ( ... 'rest_framework.authtoken' ) toke ...
- Django REST framework+Vue 打造生鲜超市(十)
十一.pycharm远程代码调试 第三方登录和支付,都需要有服务器才行(回调url),我们可以用pycharm去远程调试服务器代码 服务器环境搭建 以全新阿里云centos7系统为例: 11.1.阿里 ...
- Django REST framework+Vue 打造生鲜超市(十一)
十二.支付宝沙箱环境配置 12.1.创建应用 进入蚂蚁金服开放平台(https://open.alipay.com/platform/home.htm),登录后进入管理中心-->>应用列表 ...
随机推荐
- Java虚拟机结构
一.JVM主要的结构如下: 二.各个区域功能介绍 1).方法区(Method Area): (1)用于存储虚拟机加载的类信息.常量.静态变量等,是各个线程共享的内存区域: ...
- 水晶报表中"已达到系统管理员配置的最大报表处理作业数限制"错误的处理
错误描述:用水晶报表做报表时当多次打开报表后会经常会出现"已达到系统管理员配置的最大报表处理作业数限制. "的错误. 1.自身的问题:用完CrystalDecisions.Crys ...
- mybatis 配置 log4j 日志
mybatis 配置 log4j 日志 使用Mybatis的时候,可能需要输出(主要是指sql,参数,结果)日志,查看执行的SQL语句,以便调试,查找问题. 测试Java类中需要加入代码: stati ...
- 4.1、Libgdx的生命周期
(原文:http://www.libgdx.cn/topic/32/4-1-libgdx%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F) 一个libgdx应 ...
- CSDN_投票评选_JS_分析脚本
作者: 铁锚 日期: 2013年12月31日 如题, 使用说明如下: 1. 原创图书 http://special.csdn.net/book2013/yc.html 2. 引进图书 http://s ...
- unity UGUI实现类似NGUI切换Sprite的方式
很多都是使用NGUI的习惯,因为在NGUI中所有图片都打包在一个图集中,通过更改SpriteName就可以更改图片,so,为了方便调用UGUI的sprite,我们也同样需要为其创建一个asset文件. ...
- hadoop环境配置过程中可能遇到问题的解决方案
Failed to set setXIncludeAware(true) for parser 遇到此问题一般是jar包冲突的问题.一种情况是我们向java的lib目录添加我们自己的jar包导致had ...
- GCC内联函数:__builtin_types_compatible_p
#if 0 - Built-in Function: int __builtin_types_compatible_p (type1, type2) You can use the built-in ...
- Eclipse 项目以非gradle方式导入Android Studio
对于以前习惯了Eclipse ide的开发这来说,要把项目导入到studio是一件很不愿接受的事情,但是...毕竟人家官方都给出建议了,并且年后会逐渐被淘汰 如下图所示是一个典型的eclipse项目. ...
- 《java入门第一季》之面向对象(面向对象案例详解)
通过几个小案例理重新回顾一下前面所写的内容,对面向对象的理解更加深刻的目的: 案例一: /* 需求: 定义一个员工类,自己分析出几个成员, 然后给出成员变量,构造方法,getXxx()/setXxx( ...