Django rest framework集成微博第三方登陆

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

友情连接

python-social-auth-app官方文档php

微博开放者平台html

QQ开放者平台python

准备工做

1.注册微博开放者平台并经过我的认证,建立一个网页应用。数据库

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

3.找到本身的app_key 和 App Secret并保存后端

4.准备一个django restframework 先后端分离项目。微信

drf集成social-auth第三方包

这里咱们要安装social-auth-app-django这个第三方包,世界上全部主流的第三方登陆均可以支持,咱们能够在他的源码里看到几乎涵盖了全部第三方登陆。 app

#pip直接安装前后端分离

$ pip install social-auth-app-django

在settings.py文件中设置:url

#安装的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和微信道理也同样。

相关文章
相关标签/搜索