Django registration and authentication with Strawberry.
This Library is the strawberry version of! 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
- Awesome docs!
- Captcha validation
- Async/Sync supported!
- Works with default or custom user model
- JWT authentication (with Strawberry Django JWT)
- User registration with email verification
- Add secondary email, with email verification too
- Resend activation email
- Retrieve/Update user
- Archive user
- Permanently delete user or make it inactive
- Turn archived user active again on login
- Track user status (archived, verified, secondary email)
- Password change
- Password reset through email
- Revoke user tokens on account archive/delete/password change/reset
- All mutations return
success
anderrors
- Default email templates (you will customize though)
- Customizable, no lock-in
- Passwordless registration
- Currently, only mutations are compatible with Relay
import strawberry
from gqlauth.user import arg_mutations as mutations
@strawberry.type
class AuthMutation:
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
password_change = mutations.PasswordChange.field
archive_account = mutations.ArchiveAccount.field
delete_account = mutations.DeleteAccount.field
update_account = mutations.UpdateAccount.field
send_secondary_email_activation = mutations.SendSecondaryEmailActivation.field
verify_secondary_email = mutations.VerifySecondaryEmail.field
swap_emails = mutations.SwapEmails.field
captcha = mutations.Captcha.field
# django-graphql-jwt authentication
# with some extra features
token_auth = mutations.ObtainJSONWebToken.field
verify_token = mutations.VerifyToken.field
refresh_token = mutations.RefreshToken.field
revoke_token = mutations.RevokeToken.field
schema = strawberry.Schema(mutation=AuthMutation)
See CONTRIBUTING.md