django休息框架社会认证流程

时间:2016-08-12 05:12:58

标签: authentication oauth django-rest-framework python-social-auth

我是django和社会认证的新人。

我试图创建一个人们登录(使用谷歌)并发布内容的网站。我使用的是python-social-auth,用户登录就好了。然后我想使用DRF并且它需要它自己的身份验证,因此我查看django-rest-framework-social-auth,但无法理解如何使用它。我按照说明更改了我的settings.py,用户仍在进行身份验证。但不是DRF(发布请求响应401错误)。根据我的理解,我需要向客户发送一个令牌,他必须在后续请求中包含该令牌。

我有以下疑惑:
在https://github.com/PhilipGarnero/django-rest-framework-social-oauth2中,有一个获取令牌的卷曲请求(我认为它是access_token),我应该在哪里提出该请求?因为它包含客户端密码,我认为它不能在浏览器中? (我仍然尝试了curl请求,它显示了无效的客户端')我也直接在python-social-auth管道中获取访问令牌。如何将其转换为用户访问令牌(在后端)?
社交认证课程中有一节,但我无法弄清楚如何使用它。

我的观点:

class WantedViewSet(viewsets.ModelViewSet):
  queryset = models.Wanted.objects.all()
  serializer_class = serializers.WantedSerializer
  permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
  authentication_classes=(SocialAuthentication,OAuth2Authentication,)

  def perform_create(self, serializer):
     serializer.save(owner=self.request.user)

设置:

REST_FRAMEWORK = {
  'DEFAULT_RENDERER_CLASSES': (
      'rest_framework.renderers.JSONRenderer',
  ),
  'DEFAULT_AUTHENTICATION_CLASSES': (
      'oauth2_provider.ext.rest_framework.OAuth2Authentication',
    'rest_framework_social_oauth2.authentication.SocialAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticatedOrReadOnly',
),
}

0 个答案:

没有答案