卧疾丰暇豫,翰墨时间作。这篇文章主要讲述DjangoRestFramework整合social-auth-app-django实现第三方登录相关的知识,希望能为你提供帮助。
- 第三方登录原理介绍见上篇,第三方登录流程
- social-auth-app-django官方文档地址
- DjangoRestFramework整合social-auth-app-django实现第三方登录流程
- 用户点击第三方登录链接进入微博登录页面
- 用户输入用户名密码,获取授权码,授权服务器验证用户信息和客户端信息
- 浏览器重定向到回调url,获取access_token
- 根据access_token调接口获取用户信息
- 首次登录:创建用戶,创建用户信息关联表
- 第二次登录:已有用户认证
- 重定向到第三方应用并实现登录
- 安装第三方库social-auth-app-django
pip install social-auth-app-django
- 注册app
INSTALLED_APPS = ( ... \'social_django\', ... )
- 执行数据库迁移操作,创建数据库表
python manage.py migrate
- 添加微信、QQ、微博backends到settings.py配置文件中
AUTHENTICATION_BACKENDS = ( \'social_core.backends.weibo.WeiboOAuth2\', \'social_core.backends.weixin.WeixinOAuth2\', \'social_core.backends.qq.QQOAuth2\', \'django.contrib.auth.backends.ModelBackend\', )
- 添加根路由到urls.py,这里主要有两个路由地址,login/...,主要是实现返回授权码的功能,complete/...,主要是实现后续获取access_token,创建用户,关联用户,认证和跳转登录功能
urlpatterns = patterns(\'\', ... url(\'\', include(\'social_django.urls\', namespace=\'social\')) ... )
文章图片
- 添加context_processors到template
TEMPLATES = [ { ... \'OPTIONS\': { ... \'context_processors\': [ ... \'social_django.context_processors.backends\', \'social_django.context_processors.login_redirect\', ... ] } } ]
- 【DjangoRestFramework整合social-auth-app-django实现第三方登录】添加应用key和secret到配置文件settins.py中
SOCIAL_AUTH_TWITTER_KEY = \'foobar\' SOCIAL_AUTH_TWITTER_SECRET = \'bazqux\'
- settins.py中配置用户完成登录之后的跳转url
SOCIAL_AUTH_LOGIN_REDIRECT_URL = \'/index/\'
- 前后端分离的项目中将token放进响应cookie中实现登录跳转之后自动登录
文章图片
文章图片
- 实现微博第三方登录,浏览器输入地址http://127.0.0.1:8000/login/weibo
文章图片
文章图片
推荐阅读
- Android 开发学习进程0.15adb
- Android开发中的SQLite事务处理
- 介绍一下 WebApplicationContext ?
- android日记
- ApplicationContext 通常的实现是什么?
- 腾讯Bugly干货分享Android 进程保活招式大全
- 解决Intellij IDEA中Mybatis Mapper自动注入警告
- android开发-java
- [记录点滴]在Ionic和Android中上传Blob图片