strawberry-django-auth


Namestrawberry-django-auth JSON
Version 0.378.4 PyPI version JSON
download
home_pageNone
SummaryGraphql authentication system with Strawberry for Django.
upload_time2025-02-17 12:10:18
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            [![Tests](https://img.shields.io/github/actions/workflow/status/nrbnlulu/strawberry-django-auth/tests.yml?label=Tests&style=for-the-badge)](https://github.com/nrbnlulu/strawberry-django-auth/actions/workflows/tests.yml)
[![Codecov](https://img.shields.io/codecov/c/github/nrbnlulu/strawberry-django-auth?style=for-the-badge)](https://app.codecov.io/gh/nrbnlulu/strawberry-django-auth)
[![Pypi](https://img.shields.io/pypi/v/strawberry-django-auth.svg?style=for-the-badge&logo=appveyor)](https://pypi.org/project/strawberry-django-auth/)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=for-the-badge&logo=appveyor)](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/CONTRIBUTING.md)
[![Pypi downloads](https://img.shields.io/pypi/dm/strawberry-django-auth?style=for-the-badge)](https://pypistats.org/packages/strawberry-django-auth)
[![Python versions](https://img.shields.io/pypi/pyversions/strawberry-django-auth?style=social)](https://pypi.org/project/strawberry-django-auth/)

# Strawberry-django Auth
[Django](https://github.com/django/django) registration and authentication with [Strawberry](https://strawberry.rocks/).

## Demo

![Demo Video](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/demo.gif)

## About
#### This Library was inspired by [Django-graphql-auth](https://github.com/pedrobern/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](https://nrbnlulu.github.io/strawberry-django-auth/)

## Features

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


### Full schema features

```python


@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](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/CONTRIBUTING.md)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "strawberry-django-auth",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": "Nir Benlulu <nrbnlulu@gmail.com>",
    "keywords": null,
    "author": null,
    "author_email": "Nir Benlulu <nrbnlulu@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/cb/27/79bb9c0c00db1b5ead8460c017b7cda1af2a8a516ea1e6a9b40095a66ef9/strawberry_django_auth-0.378.4.tar.gz",
    "platform": null,
    "description": "[![Tests](https://img.shields.io/github/actions/workflow/status/nrbnlulu/strawberry-django-auth/tests.yml?label=Tests&style=for-the-badge)](https://github.com/nrbnlulu/strawberry-django-auth/actions/workflows/tests.yml)\n[![Codecov](https://img.shields.io/codecov/c/github/nrbnlulu/strawberry-django-auth?style=for-the-badge)](https://app.codecov.io/gh/nrbnlulu/strawberry-django-auth)\n[![Pypi](https://img.shields.io/pypi/v/strawberry-django-auth.svg?style=for-the-badge&logo=appveyor)](https://pypi.org/project/strawberry-django-auth/)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=for-the-badge&logo=appveyor)](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/CONTRIBUTING.md)\n[![Pypi downloads](https://img.shields.io/pypi/dm/strawberry-django-auth?style=for-the-badge)](https://pypistats.org/packages/strawberry-django-auth)\n[![Python versions](https://img.shields.io/pypi/pyversions/strawberry-django-auth?style=social)](https://pypi.org/project/strawberry-django-auth/)\n\n# Strawberry-django Auth\n[Django](https://github.com/django/django) registration and authentication with [Strawberry](https://strawberry.rocks/).\n\n## Demo\n\n![Demo Video](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/demo.gif)\n\n## About\n#### This Library was inspired by [Django-graphql-auth](https://github.com/pedrobern/django-graphql-auth/).\n\nAbstract all the basic logic of handling user accounts out of your app,\nso you don't need to think about it and can **get you up and running faster**.\n\nNo lock-in. When you are ready to implement your own code or this package\nis not up to your expectations , it's *easy to extend or switch to\nyour implementation*.\n\n\n### Docs can be found [here](https://nrbnlulu.github.io/strawberry-django-auth/)\n\n## Features\n\n* [x] Awesome docs!\n* [x] Captcha validation (with extra `strawberry-django-auth[captcha]`)\n* [x] Async/Sync supported!\n* [x] Works with default or custom user model\n* [x] Builtin JWT authentication using [PyJWT](https://github.com/jpadilla/pyjwt)\n* [x] User registration with email verification\n* [x] Retrieve/Update user\n* [x] Archive user\n* [x] Permanently delete user or make it inactive\n* [x] Turn archived user active again on login\n* [x] Track user status <small>(archived, verified)</small>\n* [x] Password change\n* [x] Password reset through email\n* [x] Revoke user tokens on account archive/delete/password change/reset\n* [x] All mutations return `success` and `errors`\n* [x] Default email templates <small>(you will customize though)</small>\n* [x] Customizable, no lock-in\n* [x] Passwordless registration\n\n\n### Full schema features\n\n```python\n\n\n@strawberry.type\nclass Mutation:\n    verify_token = mutations.VerifyToken.field\n    update_account = mutations.UpdateAccount.field\n    archive_account = mutations.ArchiveAccount.field\n    delete_account = mutations.DeleteAccount.field\n    password_change = mutations.PasswordChange.field\n    swap_emails = mutations.SwapEmails.field\n\n    # these are mutation that does not require authentication.\n    captcha = Captcha.field\n    token_auth = mutations.ObtainJSONWebToken.field\n    register = mutations.Register.field\n    verify_account = mutations.VerifyAccount.field\n    resend_activation_email = mutations.ResendActivationEmail.field\n    send_password_reset_email = mutations.SendPasswordResetEmail.field\n    password_reset = mutations.PasswordReset.field\n    password_set = mutations.PasswordSet.field\n    refresh_token = mutations.RefreshToken.field\n    revoke_token = mutations.RevokeToken.field\n    verify_secondary_email = mutations.VerifySecondaryEmail.field\n\n\nschema = strawberry.Schema(query=Query, mutation=Mutation)\n\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/CONTRIBUTING.md)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Graphql authentication system with Strawberry for Django.",
    "version": "0.378.4",
    "project_urls": {
        "Documentation": "https://nrbnlulu.github.io/strawberry-django-auth/",
        "Homepage": "https://github.com/nrbnlulu/strawberry-django-auth"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "da4cec0026f42e3b91cf46b2fa1cc7f3e8ae98887251a70bbc00621e0d182baa",
                "md5": "155772546fb94764226c8f395a2a235c",
                "sha256": "dd0ea04312ef969aafdcbc2d6f4be9af883ae38d0e717d32ca1983a9c91887ac"
            },
            "downloads": -1,
            "filename": "strawberry_django_auth-0.378.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "155772546fb94764226c8f395a2a235c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 477461,
            "upload_time": "2025-02-17T12:10:12",
            "upload_time_iso_8601": "2025-02-17T12:10:12.519332Z",
            "url": "https://files.pythonhosted.org/packages/da/4c/ec0026f42e3b91cf46b2fa1cc7f3e8ae98887251a70bbc00621e0d182baa/strawberry_django_auth-0.378.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cb2779bb9c0c00db1b5ead8460c017b7cda1af2a8a516ea1e6a9b40095a66ef9",
                "md5": "ec7643bd7e3cd0ae2f5619e34b8cec15",
                "sha256": "40bf6041507118b213d67e763f813219285be3c0f677aa4b869eb7df962a0f2c"
            },
            "downloads": -1,
            "filename": "strawberry_django_auth-0.378.4.tar.gz",
            "has_sig": false,
            "md5_digest": "ec7643bd7e3cd0ae2f5619e34b8cec15",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 6932750,
            "upload_time": "2025-02-17T12:10:18",
            "upload_time_iso_8601": "2025-02-17T12:10:18.010711Z",
            "url": "https://files.pythonhosted.org/packages/cb/27/79bb9c0c00db1b5ead8460c017b7cda1af2a8a516ea1e6a9b40095a66ef9/strawberry_django_auth-0.378.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-17 12:10:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nrbnlulu",
    "github_project": "strawberry-django-auth",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "strawberry-django-auth"
}
        
Elapsed time: 1.59480s