Skip to main content

Graphql authentication system with Strawberry for Django.

Project description

Tests Codecov Pypi contributions welcome Pypi downloads Python versions

Strawberry-django Auth

Django registration and authentication with Strawberry.

Demo

Demo Video

About

This Library was inspired by Django-graphql-auth.

Abstract all the basic logic of handling user accounts out of your app, so you don't need to think about it and can get you up and running faster.

No lock-in. When you are ready to implement your own code or this package is not up to your expectations , it's easy to extend or switch to your implementation.

Docs can be found here

Features

  • Awesome docs!
  • Captcha validation (with extra strawberry-django-auth[captcha])
  • Async/Sync supported!
  • Works with default or custom user model
  • Builtin JWT authentication using PyJWT
  • User registration with email verification
  • Retrieve/Update user
  • Archive user
  • Permanently delete user or make it inactive
  • Turn archived user active again on login
  • Track user status (archived, verified)
  • Password change
  • Password reset through email
  • Revoke user tokens on account archive/delete/password change/reset
  • All mutations return success and errors
  • Default email templates (you will customize though)
  • Customizable, no lock-in
  • Passwordless registration

Full schema features

@strawberry.type
class Mutation:
    verify_token = mutations.VerifyToken.field
    update_account = mutations.UpdateAccount.field
    archive_account = mutations.ArchiveAccount.field
    delete_account = mutations.DeleteAccount.field
    password_change = mutations.PasswordChange.field
    swap_emails = mutations.SwapEmails.field

    # these are mutation that does not require authentication.
    captcha = Captcha.field
    token_auth = mutations.ObtainJSONWebToken.field
    register = mutations.Register.field
    verify_account = mutations.VerifyAccount.field
    resend_activation_email = mutations.ResendActivationEmail.field
    send_password_reset_email = mutations.SendPasswordResetEmail.field
    password_reset = mutations.PasswordReset.field
    password_set = mutations.PasswordSet.field
    refresh_token = mutations.RefreshToken.field
    revoke_token = mutations.RevokeToken.field
    verify_secondary_email = mutations.VerifySecondaryEmail.field


schema = strawberry.Schema(query=Query, mutation=Mutation)

Contributing

See CONTRIBUTING.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strawberry_django_auth-0.377.0.tar.gz (469.4 kB view details)

Uploaded Source

Built Distribution

strawberry_django_auth-0.377.0-py3-none-any.whl (477.3 kB view details)

Uploaded Python 3

File details

Details for the file strawberry_django_auth-0.377.0.tar.gz.

File metadata

  • Download URL: strawberry_django_auth-0.377.0.tar.gz
  • Upload date:
  • Size: 469.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Linux/6.5.0-1023-azure

File hashes

Hashes for strawberry_django_auth-0.377.0.tar.gz
Algorithm Hash digest
SHA256 3d3a01559aac2e04c7836907958d5212270676962a1a5d1a7cd42f40abc2f7f3
MD5 8e35b22c0e131f977010a57789fd4f0b
BLAKE2b-256 38e9fc4979a38c8f42ff74169584df199f02f19ff30127b99ee77fdcf7ae8a1e

See more details on using hashes here.

File details

Details for the file strawberry_django_auth-0.377.0-py3-none-any.whl.

File metadata

File hashes

Hashes for strawberry_django_auth-0.377.0-py3-none-any.whl
Algorithm Hash digest
SHA256 185cdf4dde1430d53fc67dc2ce6b9839ea799bd8e24cfc0108a138f6d7775b6e
MD5 249954f666177d7b4a9999acb8a293fa
BLAKE2b-256 bfc2f48ec90f6ba03f154fdd90d4f211c565abec5af876af6a7a452e3efab4fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page