Package: django-tastypie-oauth
django-tastypie-oauth=====================[![Build Status](https://travis-ci.org/orcasgit/django-tastypie-oauth.svg?branch=master)](https://travis-ci.org/orcasgit/django-tastypie-oauth) [![Coverage Status](https://coveralls.io/repos/orcasgit/django-tastypie-oauth/badge.png?branch=master)](https://coveralls.io/r/orcasgit/django-tastypie-oauth?branch=master) [![Requirements Status](https://requires.io/github/orcasgit/django-tastypie-oauth/requirements.png?branch=master)](https://requires.io/github/orcasgit/django-tastypie-oauth/requirements/?branch=master)Providing OAuth services for Tastypie APIsDependencies============This library works with two different OAuth providers, you must install one of them:- django-oauth-toolkit: https://github.com/evonove/django-oauth-toolkit- django-oauth2-provider: https://github.com/caffeinehit/django-oauth2-providerSet up one of these libraries before continuingUsage=====1. Add `tastypie_oauth` to `INSTALLED_APPS` in Django.2. Specify `OAUTH_ACCESS_TOKEN_MODEL` in the Django settings. At this time it can be `'oauth2_provider.models.AccessToken'` for django-oauth-toolkit and `'provider.oauth2.models.AccessToken'` for django-oauth2-provider.3. When you create your Tastypie resources, use `OAuth20Authentication` like so:```python# mysite/polls/api.pyfrom tastypie.resources import ModelResourcefrom tastypie.authorization import DjangoAuthorizationfrom polls.models import Poll, Choicefrom tastypie import fieldsfrom tastypie_oauth.authentication import OAuth20Authenticationclass ChoiceResource(ModelResource):class Meta:queryset = Choice.objects.all()resource_name = 'choice'authorization = DjangoAuthorization()authentication = OAuth20Authentication()class PollResource(ModelResource):choices = fields.ToManyField(ChoiceResource, 'choice_set', full=True)class Meta:queryset = Poll.objects.all()resource_name = 'poll'authorization = DjangoAuthorization()authentication = OAuth20Authentication()```Or, if you want to use scoped authentication, use the `OAuth2ScopedAuthentication` class:```pythonfrom tastypie_oauth.authentication import OAuth20ScopedAuthentication# With Django-oauth-toolkitclass ChoiceResource(ModelResource):poll = fields.ToOneField("polls.api.PollResource", "poll", full=False)class Meta:resource_name = 'choice'queryset = Choice.objects.all()authorization = DjangoAuthorization()authentication = OAuth2ScopedAuthentication(post=("read write",),get=("read",),put=("read","write"))``````pythonfrom provider.constants import READ, WRITE, READ_WRITEfrom tastypie_oauth.authentication import OAuth20ScopedAuthentication# With Django-oauth2-providerclass ChoiceResource(ModelResource):poll = fields.ToOneField("polls.api.PollResource", "poll", full=False)class Meta:resource_name = 'choice'queryset = Choice.objects.all()authorization = DjangoAuthorization()authentication = OAuth2ScopedAuthentication(post=(READ_WRITE,),get=(READ,),put=(READ,WRITE))```4. After authorizing the user and gaining an access token, you can use the API almost as before with just one minor change. You must add a `oauth_consumer_key` GET or POST parameter with the access token as the value, or put the access token in "Authorization" header.