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

参考

相关推荐
向前看-1 小时前
验证码机制
前端·后端
超爱吃士力架2 小时前
邀请逻辑
java·linux·后端
AskHarries4 小时前
Spring Cloud OpenFeign快速入门demo
spring boot·后端
isolusion5 小时前
Springboot的创建方式
java·spring boot·后端
zjw_rp6 小时前
Spring-AOP
java·后端·spring·spring-aop
TodoCoder6 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
凌虚7 小时前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
机器之心8 小时前
图学习新突破:一个统一框架连接空域和频域
人工智能·后端
.生产的驴8 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
顽疲8 小时前
springboot vue 会员收银系统 含源码 开发流程
vue.js·spring boot·后端