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

参考

相关推荐
易安说AI17 分钟前
Claude Opus 4.6 凌晨发布,我体验了一整晚,说说真实感受。
后端
易安说AI19 分钟前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
易安说AI22 分钟前
用 Claude Code 远程分析生产日志,追踪 Claude Max 账户被封原因
后端
颜酱1 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
Coder_Boy_4 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
掘金者阿豪5 小时前
关系数据库迁移的“暗礁”:金仓数据库如何规避数据完整性与一致性风险
后端
ServBay5 小时前
一个下午,一台电脑,终结你 90% 的 Symfony 重复劳动
后端·php·symfony
sino爱学习5 小时前
高性能线程池实践:Dubbo EagerThreadPool 设计与应用
java·后端
颜酱5 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
掘金者阿豪6 小时前
UUID的隐形成本:一个让数据库“慢下来”的陷阱
后端