前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 实现第三方账号登录网站

Django 实现第三方账号登录网站

作者头像
希希里之海
发布2018-08-02 15:12:52
1.7K0
发布2018-08-02 15:12:52
举报
文章被收录于专栏:weixuqin 的专栏weixuqin 的专栏

  这里我们使用 django-allauth 模块来实现第三方账号验证登录,官方文档如下:https://django-allauth.readthedocs.io/en/latest/ 。

安装 django-allauth

代码语言:javascript
复制
pip install django-allauth

注意,django-allauth 需要在 Django1.10以上版本使用。

在建好的项目 settings.py 文件中加入:

代码语言:javascript
复制
INSTALLED_APPS = (
    ...
    # 需要的 app
    'django.contrib.auth',
    'django.contrib.sites',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    # 提供你想接入的第三方验证账户,这里以百度为例
    'allauth.socialaccount.providers.baidu',
)

SITE_ID = 1
LOGIN_REDIRECT_URL = '/'

除了 allauth.socialaccount.providers.baidu 外,也可以把 baidu 换成 twitter 或 github 等几十种不同的网站验证,官方网站列出了所有支持的网站(https://django-allauth.readthedocs.io/en/latest/providers.html

不过国内的支持倒不多,有百度,微博,微信等。

在 urls.py 中加入一行

代码语言:javascript
复制
re_path(r'^accounts/', include('allauth.urls')),

使用

代码语言:javascript
复制
./manage.py migrate

同步数据库。

上述工作完成后,进入网站的后台管理,就可以看到下图所示界面,多出了许多和网站验证设置相关的数据表。

修改站点内容为你网站的域名,我这里测试用,直接是本地地址

在 Social Accounts › Social applications 下新增一个 Social applications

关于 Client id 和 Secret key 内容需要我们到授权的第三方账号网站开发者创建应用后拿到 对应的 id 和 key,这里以百度为例,登录百度开发者中心,创建应用后我们便拿到相应的 API Key(Client id)和 Secret Key 。

将 API Key 和 Secret Key 填入 Django 后台的 Social applications 中。

添加授权回调页地址 http://your domain/accounts/baidu/login/callback/ 

接下来我们重新打开我们的登录界面,便有了百度的登录链接

界面有点丑,这是 django-allauth 默认的登录界面,我们可以在 project/templates/account 下创建 login.html 便可覆盖 djano-allauth 的默认登录模板,allauth自带的模板放在 allauth/templates/account 下,也可以在这里替换。

登录 -> 授权 -> 成功!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档