Graphql authentication system with Strawberry for Django.
Project description
# Strawberry-django Auth Django registration and authentication with Strawberry.
Demo
About
This Library is the strawberry version of .
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 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.
Documentation
Documentation is available at read the docs.
Features
☐ Awesome docs:tada:
☐ Fully compatible with Relay
☒ Works with default or custom user model
☒ JWT authentication (withstrawberry-django-jwt)
☒ User query with filters (withDjango FilterandGraphene Django)
☒ 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 refresh 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.
Full schema features
import strawberry
from gqlauth import mutations
@strawberrry.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 # For passwordless registration
password_change = mutations.PasswordChange.Field
update_account = mutations.UpdateAccount.Field
archive_account = mutations.ArchiveAccount.Field
delete_account = mutations.DeleteAccount.Field
send_secondary_email_activation = mutations.SendSecondaryEmailActivation.Field
verify_secondary_email = mutations.VerifySecondaryEmail.Field
swap_emails = mutations.SwapEmails.Field
remove_secondary_email = mutations.RemoveSecondaryEmail.Field
# django-graphql-jwt inheritances
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)
User relay queries
Currently not supported
excpect to find it here when strawberry will nativly support relay
Example
Handling user accounts becomes super easy.
mutation {
register(
email: "new_user@email.com",
username: "new_user",
password1: "123456super",
password2: "123456super",
) {
success,
errors,
token,
refreshToken
}
}
Check the status of the new user:
u = UserModel.objects.last()
u.status.verified
# False
During the registration, an email with a verification link was sent.
mutation {
verifyAccount(
token:"<TOKEN ON EMAIL LINK>",
) {
success,
errors
}
}
Now user is verified.
u.status.verified
# True
Check the installation guide or jump to the quickstart. Or if you prefer, browse the api.
Contributing
See CONTRIBUTING.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for strawberry-django-auth-0.1.55.0.linux-x86_64.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39baf54522fcdaa417b5a243c114610d6b5994374511552df7522438cde6689a |
|
MD5 | e93859d3d5dcbb516a04411375eb12e1 |
|
BLAKE2b-256 | 5a16a1b7c9bde750d5fc7f4d62b4c04b579c739eb3886e81ae997473a0848cba |