Strawberry-django Social Auth¶
Django social authentication with Strawberry using Social Django.
About¶
This Library was inspired by Django-graphql-social-auth.¶
Django Social Auth for Strawberry Graphql engine.
Docs can be found here¶
Features¶
- Awesome docs!
- Social Auth
- Profile pic's URL storage in User's model
- Relay Support (Coming Soon...)
Installation:¶
pip install strawberry-django-social-auth
settings.py
SOCIAL_AUTH_PIPELINE = [
...
'gql_social_auth.pipeline.get_avatar', # Get Avatar Pipeline
]
Usage:¶
- Use built-In Mutation
@strawberry.type class Mutation: social_auth = mutations.SocialAuth.field schema = strawberry.Schema(query=Query, mutation=Mutation)
- Customize the Usage of Mutation using the decorator
from gql_social_auth.decorators import social_auth from gql_social_auth.types import SocialAuthInput @strawberry.type class CustomMutation: @strawberry.mutation @social_auth def social_auth(self, info: Info, _input: SocialAuthInput, user, errors) -> CustomReturnType: # user: User object from model # errors: If any errors occurred during the process of getting the social auth # Note: Any of the user or errors is None at a time, both can't be None at the same time... if errors is not None: # Handle Error here # Use user Object here...
Calling:¶
mutation SocialAuth($provider: String!, $accessToken: String!){
socialAuth(provider: $provider, accessToken: $accessToken){
uid
avatar
extraData
errors
success
refreshToken {
created
isExpired
expiresAt
token
revoked
}
token {
token
payload {
exp
origIat
}
}
user {
email
archived
dateJoined
firstName
isActive
id
isStaff
isSuperuser
lastLogin
lastName
logentrySet {
pk
}
status {
archived
verified
}
verified
}
}
}
Contributing¶
See CONTRIBUTING.md