Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nrbnlulu/strawberry-django-auth
Authentication system for django using strawberry
https://github.com/nrbnlulu/strawberry-django-auth
authentication django graphql registration strawberry
Last synced: 12 days ago
JSON representation
Authentication system for django using strawberry
- Host: GitHub
- URL: https://github.com/nrbnlulu/strawberry-django-auth
- Owner: nrbnlulu
- License: mit
- Created: 2022-04-04T07:49:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-07T18:00:59.000Z (about 1 month ago)
- Last Synced: 2024-10-14T09:41:33.798Z (about 1 month ago)
- Topics: authentication, django, graphql, registration, strawberry
- Language: Python
- Homepage: https://nrbnlulu.github.io/strawberry-django-auth/
- Size: 9.13 MB
- Stars: 64
- Watchers: 1
- Forks: 30
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[![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 (archived, verified)
* [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 (you will customize though)
* [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.fieldschema = strawberry.Schema(query=Query, mutation=Mutation)
```
## Contributing
See [CONTRIBUTING.md](https://github.com/nrbnlulu/strawberry-django-auth/blob/main/CONTRIBUTING.md)