Metadata-Version: 1.1
Name: django-tastypie-oauth
Version: 0.0.3
Summary: Providing OAuth services for Tastypie APIs
Home-page: https://github.com/orcasgit/django-tastypie-oauth
Author: Oregon Center for Applied Science
Author-email: bpitcher@orcasinc.com
License: Apache 2.0
Description: 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 APIs
        
        Dependencies
        ============
        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-provider
        
        Set up one of these libraries before continuing
        
        Usage
        =====
        
        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.py
            from tastypie.resources import ModelResource
            from tastypie.authorization import DjangoAuthorization
            from polls.models import Poll, Choice
            from tastypie import fields
            from tastypie_oauth.authentication import OAuth20Authentication
        
            class 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:
            ```python
            from tastypie_oauth.authentication import OAuth20ScopedAuthentication
        
            # With Django-oauth-toolkit
            class 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")
                    )
            ```
            ```python
            from provider.constants import READ, WRITE, READ_WRITE
            from tastypie_oauth.authentication import OAuth20ScopedAuthentication
        
            # With Django-oauth2-provider
            class 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.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Software Development :: Libraries :: Python Modules
