This app makes it extremely easy to build Django powered SPA's (Single Page App) or Mobile apps exposing all registration and authentication related functionality as CBV's (Class Base View) and REST (JSON)
Go to file
Silin Na 93a3de57ff Created AUTHORS, MANIFEST.in, and setup.py.
+ Revised README.md.
+ AutoPEP8 rest_auth python files.
2014-04-30 13:55:04 -07:00
rest_auth Created AUTHORS, MANIFEST.in, and setup.py. 2014-04-30 13:55:04 -07:00
.gitignore Initial commit 2014-04-30 12:50:41 -07:00
AUTHORS Created AUTHORS, MANIFEST.in, and setup.py. 2014-04-30 13:55:04 -07:00
LICENSE Initial commit 2014-04-30 12:50:41 -07:00
MANIFEST.in Created AUTHORS, MANIFEST.in, and setup.py. 2014-04-30 13:55:04 -07:00
README.md Created AUTHORS, MANIFEST.in, and setup.py. 2014-04-30 13:55:04 -07:00
setup.py Created AUTHORS, MANIFEST.in, and setup.py. 2014-04-30 13:55:04 -07:00

django-rest-auth

Since the introduction of django-rest-framework, Django apps have been able to serve up app-level REST API endpoints. As a result, we saw a lot of instances where developers implemented their own REST registration API endpoints here and there, snippets, and so on. We aim to solve this demand by providing django-rest-auth, a set of REST API endpoints to handle User Registration and Authentication tasks. By having these API endpoints, your client apps such as AngularJS, iOS, Android, and others can communicate to your Django backend site independently via REST APIs for User Management. Of course, we'll add more API endpoints as we see the demand.

Features

  1. User Registration with activation
  2. Login/Logout
  3. Retrieve/Update the Django User & user-defined UserProfile model
  4. Password change
  5. Password reset via e-mail

Installation

  1. This project needs the following packages

    django-registration>=1.0

    djangorestframework>=2.3.13

    django-rest-swagger>=0.1.14

  2. Install this package.

  3. Add rest_auth app to INSTALLED_APPS in your django settings.py

    INSTALLED_APPS = (

    ...,
    
    'rest_auth',
    

    )

  4. This project depends on django-rest-framework library, therefore the following REST_FRAMEWORK settings needs to be entered in your Django settings.py::

    REST_FRAMEWORK = {

    'DEFAULT_AUTHENTICATION_CLASSES': (
       'rest_framework.authentication.SessionAuthentication',
    ),
    
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated'
    )
    

    }

  5. Lastly, this project accepts the following Django setting values. You can set the UserProfile model and/or create your own REST registration backend for django-registration.

    REST_REGISTRATION_BACKEND = 'rest_auth.backends.rest_registration.RESTRegistrationView'

    REST_PROFILE_MODULE = 'accounts.UserProfile'

  6. You're good to go now!

API endpoints without Authentication

  1. /rest_accounts/register/ - POST

    Parameters

    username, password, email, first_name, last_name

  2. /rest_accounts/password/reset/ - POST

    Parameters

    email

  3. /rest_accounts/password/reset/confirm/{uidb64}/{token}/ - POST

    Django URL Keywords

    uidb64, token

    Parameters

    new_password1, new_password2

  4. /rest_accounts/login/ - POST

    Parameters

    username, password

  5. /rest_accounts/verify-email/{activation_key}/ - GET

    Django URL Keywords

    activation_key

API endpoints with Authentication

  1. /rest_accounts/logout/ - GET

  2. /rest_accounts/user/ - GET & POST

    GET Parameters

    POST Parameters

    user as dictionary with id, email, first_name, last_name

    Ex) "user": {"id": 1, "first_name": "Person", "last_name": "2"}

    user-defined UserProfile model fields

  3. /rest_accounts/password/change/ - POST

    Parameters

    new_password1, new_password2