Git Product home page Git Product logo

django-next-auth-adapter's Introduction

Django Next Auth Adapter

Django Next Auth Adapter is a Django package designed to handle server-side requests from the "next-auth-http-adapter" JavaScript package. This package is intended for use with Next.js and NextAuth.js to seamlessly integrate custom backend functionality into the NextAuth.js authentication flow by facilitating HTTP communication between the frontend and backend.

Pre-requisites

User Model

add the following to your user model

class User(AbstractBaseUser):
    # ...
    email_verified = models.DateTimeField(blank=True, null=True)
    # ...
    EMAIL_FIELD = "email"
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username']
    # ...

Installation

You can install the package via pip:

pip install django-next-auth-adapter

Configuration

To configure the Django Next Auth Adapter, you need to define certain settings in your Django project's settings module (settings.py).

Include django_next_auth_adapter in your INSTALLED_APPS:

# settings.py

INSTALLED_APPS = [
    # Your other installed apps
    "django_next_auth_adapter",
]

For custom configuration, add the following settings to your settings.py file:

# settings.py

DJANGO_NEXT_AUTH_ADAPTER = {
    # optional: specify the permission classes applied to views within the package. Customize these classes as needed to control access to your views. Do not specify this parameter if you want to use the default permission classes.
    "PERMISSION_CLASSES": [
        # Add your permission classes here
    ],
    # optional: specify the token used for authenticating requests from the next-auth server. If not provided, authentication will be bypassed.
    "REMOTE_AUTH_TOKEN": "your-remote-auth-token",
}

Available Settings

  • DJANGO_NEXT_AUTH_ADAPTER (dictionary): The main configuration dictionary for the package.
    • PERMISSION_CLASSES (list): This is a list of permission classes applied to views within the package. Customize these classes as needed to control access to your views.
    • REMOTE_AUTH_TOKEN (string, optional): The token used by the default permission class for authenticating requests from the next-auth server. If not provided, authentication will be bypassed.

Usage

To use the Django Next Auth Adapter, import it as follows:

from django_next_auth_adapter import DjangoNextAuthAdapter

You can then use the imported classes and functions to handle authentication and authorization as needed within your Django views.

Configuration in urls.py

To include the package's URLs in your Django project, follow these steps:

  1. Open your project's base urls.py file.

  2. Import the package's views and include them in your URL patterns.

# urls.py

from django.urls import path, include
from django_next_auth_adapter.views import YourViewName1, YourViewName2  # Import your views here

urlpatterns = [
    # Your other URL patterns
    path('next-auth/', include('django_next_auth_adapter.urls')),  # Include the package's URLs here
]

Signals

The package provides the following signals that you can use to customize the authentication and authorization process:

  • user_created: Sent when a new user is created. The signal sends the following arguments:
    • sender: The serializer class.
    • user: The user instance.
    • validated_data: The validated data used to create the user.
    • image: The image url of the user.
    • name: The name of the user.
  • user_updated: Sent when a user is updated. The signal sends the following arguments:
    • sender: The serializer class.
    • user: The user instance.
    • validated_data: The validated data used to create the user.
    • image: The image url of the user.
    • name: The name of the user.

Links

License

This project is open source and is licensed under the MIT License.

django-next-auth-adapter's People

Contributors

mabdullahadeel avatar

Watchers

 avatar

django-next-auth-adapter's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.