duplxey / django-rest-allauth

This repository demonstrates how to implement a Django REST-based authentication system with the django-allauth and dj-rest-auth packages.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Django REST-based Authentication

The repository is split into two branches:

  1. master -- basic authentication + social authentication
  2. basic -- basic authentication only

If you do not wish to use social authentication make sure to switch to the basic branch.

Want to learn how to build this?

Check out the post.

Want to use this project?

  1. Fork/Clone

  2. Create and activate a virtual environment:

    $ python3 -m venv venv && source venv/bin/activate
  3. Install the requirements:

    (venv)$ pip install -r requirements.txt
  4. Apply the migrations:

    (venv)$ python manage.py migrate
  5. Enter your SMTP settings in core/settings.py file:

    EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
    EMAIL_HOST = "<your email host>"
    EMAIL_USE_TLS = False
    EMAIL_PORT = "<your email port>"
    EMAIL_HOST_USER = "<your email user>"
    EMAIL_HOST_PASSWORD = "<your email password>"
    DEFAULT_FROM_EMAIL = "<your default from email>"
  6. Register your app on Google and take note of your client ID and secret.

  7. Enter the client IDs and secrets in core/settings.py respectively:

    SOCIALACCOUNT_PROVIDERS = {
        "google": {
            "APP": {
                "client_id": "<your google client id>",
                "secret": "<your google secret>",
                "key": "",  # leave empty
            },
            "SCOPE": [
                "profile",
                "email",
            ],
            "AUTH_PARAMS": {
                "access_type": "online",
            },
            "VERIFIED_EMAIL": True,
        }
    }
  8. Run the server:

    (venv)$ python manage.py runserver
  9. Your authentication API is now accessible at http://localhost:8000/api/auth/.

About

This repository demonstrates how to implement a Django REST-based authentication system with the django-allauth and dj-rest-auth packages.


Languages

Language:Python 100.0%