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

参考

相关推荐
bing_1582 小时前
简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
spring boot·后端·简单工厂模式
天上掉下来个程小白3 小时前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
Asthenia04124 小时前
基于Jackson注解的JSON工具封装与Redis集成实战
后端
编程星空4 小时前
css主题色修改后会多出一个css吗?css怎么定义变量?
开发语言·后端·rust
程序员侠客行4 小时前
Spring事务原理 二
java·后端·spring
dmy5 小时前
docker 快速构建开发环境
后端·docker·容器
sjsjsbbsbsn5 小时前
Spring Boot定时任务原理
java·spring boot·后端
计算机毕设指导66 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven
计算机-秋大田6 小时前
基于Spring Boot的兴顺物流管理系统设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·spring·课程设计
羊小猪~~7 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研