Drf-Social-Oauth2 文档翻译(一)

水平不高,欢迎指正。

概述

DRF-Social-OAuth2是一个功能强大,可以为基于Django REST Framework的应用程序实现OAuth2社交身份验证(OAuth2 social authentication)功能。通过高度集成python-social-authdjango-oauth-toolkit,DRF-Social-OAuth2为您的REST API提供社交身份验证,同时也可以作为您的OAuth2的提供者。

即使您不熟悉、不了解OAuth2,也没必要担心;DRF-Social-OAuth2为OAuth身份验证提供了一个简单高效的方法。即使如此,我们还是强烈建议您,通过参考我们提供的资料或者其他网上教程,来熟悉OAuth2中的概念和术语。

如果您急于测试DRF-Social-OAuth2,但又不想在本地环境中设置它,那么可以访问我们的facebook setup库。它包含了入门所需的所有配置。只需要在settings.py文件中写好数据库的设置,你就可以开始了!简单说来,他能帮助你创建自己记得django + drf-social-oauth2项目。

我们希望DRF-Social-OAuth2简化你的社交身份验证过程,并且提高您的Django REST Framework应用程序的安全性和可靠性。如果您遇到任何问题或有任何建议,请随时将其提交到我们的GitHub存储库或通过我们的支持渠道联系我们。

使用

本指南将引导您完成DRF-Social-OAuth2的安装和应用于您的Django REST Framework应用程序的设置。同时,本指南假定您对Django有一定的了解,对OAuth2身份验证也有基本的概念。如果您是Django或OAuth2的新手,我们建议您查看资源部分,以获取更多的学习资料。

首先,您需要在本机上安装Python 3和pip。安装完成后,您就可以按照下面安装部分的指令来安装DRF-Social-OAuth2及其依赖。然后,您可添加必要的内容到您的settings.py文件来配置Django环境,就可以使用DRF-Social-OAuth2了。最后,你需要迁移(migrate)你的数据库来实施这些改变。

当您读完本指南,您会成功地安装DRF-Social-OAuth2并为您的Django REST Framework应用程序完成使用DRF-Social-OAuth2的设置。依靠DRF-Social-OAuth2,您可以通过允许用户使用其社交媒体帐户进行身份验证,使您的REST-API更加安全和用户友好。

安装

本框架发布于PyPI,使用pip来安装:

ini 复制代码
pip install drf_social_oauth2==2.1.3

为了保证您的Django REST Framework应用程序能使用OAuth2社交身份验证,您需要在您的应用程序中安装并配置drf-social-oauth2。首先,在INSTALLED_APPS中添加一下Python包:

python 复制代码
INSTALLED_APPS = (
    ...,
    'oauth2_provider',
    'social_django',
    'drf_social_oauth2',
)

把社交身份验证链接添加到您的urls.py中:

python 复制代码
from django.conf.urls import url

urlpatterns = patterns(
    ...,
    url(r'^auth/', include('drf_social_oauth2.urls', namespace='drf'))
)

对于Django4.0或者更高的版本,使用re_path

python 复制代码
from django.urls import re_path

urlpatterns = patterns(
    ...,
    re_path(r'^auth/', include('drf_social_oauth2.urls', namespace='drf'))
)

接下来,设置TEMPLATES相关的内容。本着前后端分离项目的初衷,我就不翻译这一段了。

您可以在每个视图类中单独设置认证类:

python 复制代码
AUTHENTICATION_BACKENDS = (
    ...,
    'drf_social_oauth2.backends.DjangoOAuth2',
    'drf_social_oauth2.authentication.SocialAuthentication',
)

也可以在settings.py的RES_TFRAMEWORK的AUTHENTICATION_BACKENDS中全局定义验证类。

python 复制代码
REST_FRAMEWORK = {
    ...,
    'DEFAULT_AUTHENTICATION_CLASSES':(
    ...,
    # 'oauth2_provider.ext.rest_framework.OAuth2Authentication',  # django-oauth-toolkit < 1.0.0
    'oauth2_provider.contrib.rest_framework.OAuth2Authentication', # django-oauth-toolkit >= 1.0.0
    'drf_social_oauth2.authentication.SocialAuthentication',  
}

以下是drf-social-oauth2可用的设置:

  • DRFSO2_PROPRIETARY_BACKEND_NAME:您的OAuth2社交后端(OAuth2 social backend),例如Facebook,默认为Django
  • DRFSO2_URL_NAMESPACE:重定向URLs的namespace。
  • ACTIVATE_JWT:为True时,access tokens和resfresh tokens都是JWT形式的。默认为False

设置新的应用程序

首先,进入Django 管理站点,按照下述配置创建一个新的应用:

  • 保持client_idclient_secret字段不变。
  • user字段设置为您的超级用户(superuser)。
  • 保持redirect_uris字段为空。
  • client-type字段设置为保密的(confidential)。
  • authorization_grant_type字段为'Resource owner password-based'。
  • (可选)可以将name字段设置为您选择的名字。

有了这些设置,安装现在就完成了,您可以继续测试新配置的应用程序。

要获得更多信息并充分利用此软件包的功能,强烈建议您参考python-social-authdjango-oauth-toolkit的文档。如果您打算使用社交媒体后端(social backend),比如Facebook,您可能需要查阅python-social-auth文档中支持的后端supported backends和django-social-auth文档中的后端配置backend configuration

参考

相关推荐
uhakadotcom13 分钟前
构建高效自动翻译工作流:技术与实践
后端·面试·github
Asthenia041219 分钟前
深入分析Java中的AQS:从应用到原理的思维链条
后端
Asthenia041234 分钟前
如何设计实现一个定时任务执行器 - SpringBoot环境下的最佳实践
后端
兔子的洋葱圈1 小时前
【django】1-2 django项目的请求处理流程(详细)
后端·python·django
Asthenia04121 小时前
如何为这条sql语句建立索引:select * from table where x = 1 and y < 1 order by z;
后端
ihgry1 小时前
SpringBoot+Mybatis实现Mysql分表
后端
Asthenia04121 小时前
令牌桶算法与惰性机制的应用
后端
lamdaxu1 小时前
02Tomcat 线程模型详解&性能调优
后端
lamdaxu1 小时前
03Tomcat类加载机制&热加载和热部署
后端
程序猿chen1 小时前
《JVM考古现场(十五):熵火燎原——从量子递归到热寂晶壁的代码涅槃》
java·jvm·git·后端·java-ee·区块链·量子计算