Django restframework 集成第三方登录(微博、微信、QQ等)

友情链接

python-social-auth-app官方文档

微博开放者平台

QQ开放者平台

准备工作

1.注册微博开放者平台并通过个人认证,创建一个网页应用。

2.在高级信息中编辑回掉url,可以填写本机的地址。

3.找到自己的app_key 和 App Secret并保存

4.准备一个django restframework 前后端分离项目。

drf集成social-auth第三方包

这里我们要安装social-auth-app-django这个第三方包,世界上所有主流的第三方登录都可以支持,我们可以在他的源码里看到几乎涵盖了所有第三方登录。

pip直接安装

$ pip install social-auth-app-django

在settings.py文件中设置:


#安装的apps
INSTALLED_APPS = (
...
'social_django',
...
) #认证backend
AUTHENTICATION_BACKENDS = (
'social_core.backends.weibo.WeiboOAuth2',
'django.contrib.auth.backends.ModelBackend'
) #上下文管理器
TEMPLATES = [
{
...
'OPTIONS': {
...
'context_processors': [
...
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
...
]
}
}
] #微博的app id
SOCIAL_AUTH_WEIBO_KEY = 'xxx'
#微博的app secret key
SOCIAL_AUTH_WEIBO_SECRET = 'xxx' #登录成功后跳转的页面
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/index/'

同步数据表到数据库中:

python manage.py migrate

urls.py中设置:

urlpatterns = patterns('',
...
url('', include('social_django.urls', namespace='social'))
...
)

验证是否登录成功

打开http://127.0.0.1/login/weibo/

显示如下内容:

点击登录后回调配置的url,即为成功!

在数据库中也可以看到登录的用户:

这样就实现了集成到第三方登录,QQ和微信道理也一样。

Django rest framework集成微博第三方登录的更多相关文章

  1. Django 2.0.4 微博第三方登录

    三方登录逻辑 理解第三方登录的流程: 用户向本地应用商城发起请求,我要用微博进行登录 我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面) 用户在该界面点击输入用户名密码之后,点击授 ...

  2. django项目微博第三方登录

    此处咱们用到的是 social_django,所以要把此应用注册到配置文件中, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.a ...

  3. yii2微博第三方登录

    原作者:杜文建 原博客:http://www.cnblogs.com/dwj97/p/6530568.html yii2微博第三方登录   微博登录是最常用的第三方账号登录之一.由于其网站用户量大,可 ...

  4. OAuth2.0 social_django微博第三方登录

    python网站第三方登录,social-auth-app-django模块, social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目前流行的第三方 ...

  5. 微博第三方登录时,域名使用错误报错, Laravel \ Socialite \ Two \ InvalidStateException No message

    使用微博第三方登录时,报错 Laravel \ Socialite \ Two \ InvalidStateException No message Laravel \Socialite \Two \ ...

  6. Android 集成支付宝第三方登录

    前言: 在集成支付宝支付的时候遇到一点小麻烦,先在此记录供大家参考 1.授权 支付宝第三方登录需要在后台进行授权,在查看授权的时候我们一定要看清楚时候真的已经获得了权限(我在没有获取权限的情况下集成的 ...

  7. Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)

    最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...

  8. Django REST Framework JWT提供的登录签发的视图

    Django REST Framework JWT提供了一个视图.在我们登录的时候,会校验用户名.密码是否正确.如果信息无误,可以返回一个JWT token.就可以简单地实现了记录用户登录状态. 用法 ...

  9. Django项目中使用qq第三方登录。

    使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...

随机推荐

  1. 01-Java基本语法

    注释 单行注释:       //  注释内容 多行注释:    /* 注释内容 */ 文档注释: /**   注释内容   */ 数据类型 整型 byte    short    int    lo ...

  2. 通过Eureka自带REST API强行剔除失效服务

    1.确定需要强行剔除的服务 2.执行接口 方便复制: http://{ip}:{port}/eureka/apps/CONFIG-SERVER-TEST/tom:config-server-test: ...

  3. vue点击元素变色兄弟元素不变色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. HTML命名规范

    一.关于选择器的命名   W3C CSS2.1的 4.1.3 节中提到:标识符(包括选择器中的元素名,类和ID)只能包含字符[a- zA-Z0-9]和ISO 10646字符编码U+00A1及以上,再加 ...

  5. 洛谷P2572 [SCOI2010]序列操作(ODT)

    题解 题意 题目链接 Sol ODT板子题..... // luogu-judger-enable-o2 #include<bits/stdc++.h> #define LL long l ...

  6. 前端打包文件在 nginx 上 403 的解决办法

    遇到的问题表现出来就是如题所述,因此作为题目. 我们知道,前端有很多方便的构建和打包工具,如 webpack 等,通常我们会把前端文件打包到dist目录下,部署到服务器上,如 nginx 等. 这次遇 ...

  7. sqoop简单配置与使用

    sqoop(sql-to-hadoop) Apache Sqoop是用来实现结构型数据(如关系数据库)和Hadoop之间进行数据迁移的工具.它充分利用了MapReduce的并行特点以批处理的方式加快数 ...

  8. ps -ef|grep ?解释

    上述内容为: 命令拆解: ps:将某个进程显示出来-A 显示所有程序. -e 此参数的效果和指定"A"参数相同.-f 显示UID,PPIP,C与STIME栏位. grep命令是查找 ...

  9. Linux 下Shell变量,环境变量的联系与区别

    Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1.  简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...

  10. Kotlin入门(6)条件分支的实现

    上一篇文章介绍了字符串的相关操作,其中示例代码用到了if和for语句,表面上看,Kotlin对控制语句的处理与Java很像,可实际上,Kotlin在这方面做了不少的改进,所以本篇和下一篇文章就分别介绍 ...