2014-10-09 15:01:47 +04:00
Installation
============
2014-10-10 18:39:46 +04:00
1. Install package:
.. code-block :: python
pip install django-rest-auth
2. Add `` rest_auth `` app to INSTALLED_APPS in your django settings.py:
2014-10-09 15:01:47 +04:00
.. code-block :: python
INSTALLED_APPS = (
...,
'rest_framework',
'rest_framework.authtoken',
...,
'rest_auth'
)
.. note :: This project depends on `` django-rest-framework `` library, so install it if you haven't done yet. Make sure also you have installed `` rest_framework `` and `` rest_framework.authtoken `` apps
2014-10-10 18:39:46 +04:00
3. Add rest_auth urls:
2014-10-09 15:01:47 +04:00
.. code-block :: python
urlpatterns = patterns('',
...,
2015-08-11 18:22:10 +03:00
url(r'^rest-auth/', include('rest_auth.urls'))
2014-10-09 15:01:47 +04:00
)
You're good to go now!
Registration (optional)
-----------------------
2016-01-04 17:27:42 +03:00
1. If you want to enable standard registration process you will need to install `` django-allauth `` by using `` pip install django-rest-auth[extras] `` or `` pip install django-rest-auth[with_social] `` .
2014-10-09 15:01:47 +04:00
2. Add `` allauth `` , `` allauth.account `` and `` rest_auth.registration `` apps to INSTALLED_APPS in your django settings.py:
.. code-block :: python
INSTALLED_APPS = (
...,
'allauth',
'allauth.account',
'rest_auth.registration',
)
3. Add rest_auth.registration urls:
.. code-block :: python
urlpatterns = patterns('',
...,
2015-12-11 14:08:39 +03:00
url(r'^rest-auth/', include('rest_auth.urls')),
url(r'^rest-auth/registration/', include('rest_auth.registration.urls'))
2014-10-09 15:01:47 +04:00
)
2015-04-02 23:53:19 +03:00
Social Authentication (optional)
2014-10-09 15:01:47 +04:00
--------------------------------
Using `` django-allauth `` , `` django-rest-auth `` provides helpful class for creating social media authentication view. Below is an example with Facebook authentication.
2014-10-09 17:27:24 +04:00
.. note :: Points 1, 2 and 3 are related with `` django-allauth `` configuration, so if you have already configured social authentication, then please go to step 4. See `` django-allauth `` documentation for more details.
2014-10-09 15:01:47 +04:00
1. Add `` allauth.socialaccount `` and `` allauth.socialaccount.providers.facebook `` apps to INSTALLED_APPS in your django settings.py:
.. code-block :: python
INSTALLED_APPS = (
...,
'rest_framework',
'rest_framework.authtoken',
'rest_auth'
...,
'allauth',
'allauth.account',
'rest_auth.registration',
...,
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
2016-02-23 14:45:57 +03:00
'allauth.socialaccount.providers.twitter',
2014-10-09 15:01:47 +04:00
)
2015-11-19 12:36:55 +03:00
2. Add Social Application in django admin panel
2014-10-09 17:27:24 +04:00
2015-11-19 12:36:55 +03:00
3. Create new view as a subclass of `` rest_auth.registration.views.SocialLoginView `` with `` FacebookOAuth2Adapter `` adapter as an attribute:
2014-10-09 15:01:47 +04:00
.. code-block :: python
from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
2015-08-07 13:54:45 +03:00
from rest_auth.registration.views import SocialLoginView
2014-10-09 15:01:47 +04:00
2015-08-07 13:54:45 +03:00
class FacebookLogin(SocialLoginView):
2014-10-09 15:01:47 +04:00
adapter_class = FacebookOAuth2Adapter
2015-11-19 12:36:55 +03:00
4. Create url for FacebookLogin view:
2014-10-09 15:01:47 +04:00
.. code-block :: python
urlpatterns += pattern('',
...,
2015-04-27 12:01:19 +03:00
url(r'^rest-auth/facebook/$', FacebookLogin.as_view(), name='fb_login')
2014-10-09 15:01:47 +04:00
)
2015-11-19 12:36:55 +03:00
2016-02-23 14:45:57 +03:00
5. If you are using Twitter for your social authentication, it is a bit different from
Facebook since Twitter uses OAuth 1.0.
6. Create new view as a subclass of `` rest_auth.views.LoginView `` with `` TwitterOAuthAdapter `` adapter and `` TwitterLoginSerializer `` as an attribute:
.. code-block :: python
from allauth.socialaccount.providers.twitter.views import TwitterOAuthAdapter
from rest_auth.views import LoginView
from rest_auth.social_serializers import TwitterLoginSerializer
class TwitterLogin(LoginView):
serializer_class = TwitterLoginSerializer
adapter_class = TwitterOAuthAdapter
2016-02-23 15:01:11 +03:00
7. Create url for TwitterLogin view:
.. code-block :: python
urlpatterns += pattern('',
...,
url(r'^rest-auth/twitter/$', TwitterLogin.as_view(), name='twitter_login')
)
2015-11-19 12:36:55 +03:00
.. note :: Starting from v0.21.0, django-allauth has dropped support for context processors. Check out http://django-allauth.readthedocs.org/en/latest/changelog.html#from-0-21-0 for more details.