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

参考

相关推荐
菜鸟谢2 分钟前
MQTT.Net
后端
excel3 分钟前
Node.js + TensorFlow.js(GPU 加速)完整安装指南(Windows 本地编译版)
前端·后端
东阳马生架构24 分钟前
Dubbo源码—9.Consumer端的主要模块下
后端
databook27 分钟前
VS Code 中把「自己部署的 Coder 模型」变成 AI 编程助手
后端·openai·ai编程
用户61204149221327 分钟前
C语言做的停车场车牌识别系统
c语言·后端·图像识别
Victor35641 分钟前
MySQL(197)如何监控MySQL?
后端
Victor3561 小时前
Redis(1)Redis是什么?
后端
HuiSoul2006 小时前
Spring MVC
java·后端·spring mvc
Flobby5296 小时前
Go 语言中的结构体、切片与映射:构建高效数据模型的基石
开发语言·后端·golang
摇滚侠8 小时前
面试实战 问题二十四 Spring 框架中循环依赖问题的解决方法
java·后端·spring