<li><ahref="#json-web-token-authentication">JSON Web Token Authentication</a></li>
<div>
<div>
...
@@ -478,6 +479,8 @@ class ExampleAuthentication(authentication.BaseAuthentication):
...
@@ -478,6 +479,8 @@ class ExampleAuthentication(authentication.BaseAuthentication):
<p>The <ahref="https://github.com/evonove/django-oauth-toolkit">Django OAuth Toolkit</a> package provides OAuth 2.0 support, and works with Python 2.7 and Python 3.3+. The package is maintained by <ahref="https://github.com/evonove/">Evonove</a> and uses the excelllent <ahref="https://github.com/idan/oauthlib">OAuthLib</a>. The package is well documented, and comes as a recommended alternative for OAuth 2.0 support.</p>
<p>The <ahref="https://github.com/evonove/django-oauth-toolkit">Django OAuth Toolkit</a> package provides OAuth 2.0 support, and works with Python 2.7 and Python 3.3+. The package is maintained by <ahref="https://github.com/evonove/">Evonove</a> and uses the excelllent <ahref="https://github.com/idan/oauthlib">OAuthLib</a>. The package is well documented, and comes as a recommended alternative for OAuth 2.0 support.</p>
<p>The <ahref="https://github.com/Rediker-Software/doac">Django OAuth2 Consumer</a> library from <ahref="https://github.com/Rediker-Software">Rediker Software</a> is another package that provides <ahref="https://github.com/Rediker-Software/doac/blob/master/docs/integrations.md#">OAuth 2.0 support for REST framework</a>. The package includes token scoping permissions on tokens, which allows finer-grained access to your API.</p>
<p>The <ahref="https://github.com/Rediker-Software/doac">Django OAuth2 Consumer</a> library from <ahref="https://github.com/Rediker-Software">Rediker Software</a> is another package that provides <ahref="https://github.com/Rediker-Software/doac/blob/master/docs/integrations.md#">OAuth 2.0 support for REST framework</a>. The package includes token scoping permissions on tokens, which allows finer-grained access to your API.</p>
<h2id="json-web-token-authentication">JSON Web Token Authentication</h2>
<p>JSON Web Token is a fairly new standard which can be used for token-based authentication. Unlike the built-in TokenAuthentication scheme, JWT Authentication doesn't need to use a database to validate a token. <ahref="https://github.com/GetBlimp">Blimp</a> maintains the <ahref="https://github.com/GetBlimp/django-rest-framework-jwt">djangorestframework-jwt</a> package which provides a JWT Authentication class as well as a mechanism for clients to obtain a JWT given the username and password.</p>
<metaname="description"content="Django, API, REST, Generic views, API Reference, Mixins, Concrete View Classes, Customizing the generic views">
<metaname="description"content="Django, API, REST, Generic views, API Reference, Mixins, Concrete View Classes, Customizing the generic views, Third party packages">
<metaname="author"content="Tom Christie">
<metaname="author"content="Tom Christie">
<!-- Le styles -->
<!-- Le styles -->
...
@@ -191,6 +191,8 @@
...
@@ -191,6 +191,8 @@
<liclass="main"><ahref="#customizing-the-generic-views">Customizing the generic views</a></li>
<liclass="main"><ahref="#customizing-the-generic-views">Customizing the generic views</a></li>
@@ -451,6 +453,10 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
...
@@ -451,6 +453,10 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
pass
pass
</code></pre>
</code></pre>
<p>Using custom base classes is a good option if you have custom behavior that consistently needs to be repeated across a large number of views throughout your project.</p>
<p>Using custom base classes is a good option if you have custom behavior that consistently needs to be repeated across a large number of views throughout your project.</p>
<h1id="third-party-packages">Third party packages</h1>
<p>The following third party packages provide additional generic view implementations.</p>
<p>The <ahref="https://github.com/miki725/django-rest-framework-bulk">django-rest-framework-bulk package</a> implements generic view mixins as well as some common concrete generic views to allow to apply bulk operations via API requests.</p>