django-graphql-social-auth-d4 0.1.4

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangographqlsocialauthd4 0.1.4

Python Social Auth support for Django GraphQL

Dependencies

Python ≥ 3.4
Django ≥ 1.11



Installation
Install last stable version from Pypi.
pip install django-graphql-social-auth
See the documentation for further guidance on setting Python Social Auth.
Add the SocialAuth mutation to your GraphQL schema.
import graphene
import graphql_social_auth


class Mutations(graphene.ObjectType):
social_auth = graphql_social_auth.SocialAuth.Field()
Session authentication via accessToken.

provider: provider name from Authentication backend list.
accessToken: third-party (Google, Facebook…) OAuth token obtained with any OAuth client.

mutation SocialAuth($provider: String!, $accessToken: String!) {
socialAuth(provider: $provider, accessToken: $accessToken) {
social {
uid
extraData
}
}
}


JSON Web Token (JWT)
Authentication solution based on JSON Web Token.
Install additional requirements.
pip install 'django-graphql-social-auth[jwt]'
Add the SocialAuthJWT mutation to your GraphQL schema.
import graphene
import graphql_social_auth


class Mutations(graphene.ObjectType):
social_auth = graphql_social_auth.SocialAuthJWT.Field()
Authenticate via accessToken to obtain a JSON Web Token.
mutation SocialAuth($provider: String!, $accessToken: String!) {
socialAuth(provider: $provider, accessToken: $accessToken) {
social {
uid
}
token
}
}


Relay
Complete support for Relay.
import graphene
import graphql_social_auth


class Mutations(graphene.ObjectType):
social_auth = graphql_social_auth.relay.SocialAuth.Field()
graphql_social_auth.relay.SocialAuthJWT.Field() for JSON Web Token (JWT) authentication.
Relay mutations only accepts one argument named input:
mutation SocialAuth($provider: String!, $accessToken: String!) {
socialAuth(input:{provider: $provider, accessToken: $accessToken}) {
social {
uid
}
}
}


Customizing
If you want to customize the SocialAuth behavior, you’ll need to customize the resolve() method on a subclass of SocialAuthMutation or .relay.SocialAuthMutation.
import graphene
import graphql_social_auth


class SocialAuth(graphql_social_auth.SocialAuthMutation):
user = graphene.Field(UserType)

@classmethod
def resolve(cls, root, info, social, **kwargs):
return cls(user=social.user)
Authenticate via accessToken to obtain the user id.
mutation SocialAuth($provider: String!, $accessToken: String!) {
socialAuth(provider: $provider, accessToken: $accessToken) {
social {
uid
}
user {
id
}
}
}


Project template
There is a Django project template to start a demo project.

Gracias @omab / Python Social Auth.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.