Comments (2)
@ramyak-mehra
I had to overwrite SocialAuthJWT
to achieve desired behaviour. I replaced JSONWebTokenMixin
with my custom one.
class JSONWebTokenMixin:
token = graphene.String()
refresh_token = graphene.String()
@classmethod
def resolve(cls, root, info, social, **kwargs):
try:
from graphql_jwt.shortcuts import get_token, create_refresh_token
except ImportError:
raise ImportError(
'django-graphql-jwt not installed.\n'
'Use `pip install \'django-graphql-social-auth[jwt]\'`.')
token = get_token(social.user)
refresh_token = create_refresh_token(social.user)
# set jwt_token to request, it will be picked up by jwt_cookie decorator
# and cookie will be set
info.context.jwt_token = token
info.context.jwt_refresh_token = refresh_token
return cls(token=token, refresh_token=refresh_token)
class SocialAuthJWT(JSONWebTokenMixin, graphql_social_auth.SocialAuthMutation):
"""Social Auth for JSON Web Token (JWT)"""
Note that you also should use jwt_cookie
from graphql_jwt.decorators
. It will pick up jwt_token
and jwt_refresh_token
request attributes and set a cookie.
from graphql_jwt.decorators import jwt_cookie
urlpatterns = [
...
path('graphql/', jwt_cookie(GraphQLView.as_view(graphiql=settings.DEBUG))),
...
]
Finaly, just use your custom SocialAuthJWT
like shown in the docs:
class Mutations(graphene.ObjectType):
social_auth = SocialAuthJWT.Field()
from django-graphql-social-auth.
@ramyak-mehra
I had to overwriteSocialAuthJWT
to achieve desired behaviour. I replacedJSONWebTokenMixin
with my custom one.class JSONWebTokenMixin: token = graphene.String() refresh_token = graphene.String() @classmethod def resolve(cls, root, info, social, **kwargs): try: from graphql_jwt.shortcuts import get_token, create_refresh_token except ImportError: raise ImportError( 'django-graphql-jwt not installed.\n' 'Use `pip install \'django-graphql-social-auth[jwt]\'`.') token = get_token(social.user) refresh_token = create_refresh_token(social.user) # set jwt_token to request, it will be picked up by jwt_cookie decorator # and cookie will be set info.context.jwt_token = token info.context.jwt_refresh_token = refresh_token return cls(token=token, refresh_token=refresh_token) class SocialAuthJWT(JSONWebTokenMixin, graphql_social_auth.SocialAuthMutation): """Social Auth for JSON Web Token (JWT)"""
Note that you also should use
jwt_cookie
fromgraphql_jwt.decorators
. It will pick upjwt_token
andjwt_refresh_token
request attributes and set a cookie.from graphql_jwt.decorators import jwt_cookie urlpatterns = [ ... path('graphql/', jwt_cookie(GraphQLView.as_view(graphiql=settings.DEBUG))), ... ]
Finaly, just use your custom
SocialAuthJWT
like shown in the docs:class Mutations(graphene.ObjectType): social_auth = SocialAuthJWT.Field()
Thanks for the reply I already fixed it I guess I should close the issue
from django-graphql-social-auth.
Related Issues (20)
- How to trigger authentication with React frontend? HOT 5
- How to do customization in case of using SocialAuthJWT? HOT 3
- Question: How to use an idToken rather than an accessToken? HOT 2
- allauth? Any type of integration supported / possible?
- Is there example of making query with received JWT token?
- AssertionError at /graph/
- Error in the authentication with twitter HOT 2
- Use pipeline and support partial HOT 4
- Social user creation override other user account information HOT 1
- Setting a custom redirect_uri HOT 4
- Oauth requests from the backend server
- when I add class Arguments: the original arguments disappeared? HOT 1
- django social auth don't associate new users correctly HOT 3
- How do I get the refreshToken with this library HOT 1
- How can we create a username insensitive check for social login
- add a way to skip user verification
- limit only specific domain email addresses
- cannot import ugettext_lazy HOT 3
- Is this package supported? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-graphql-social-auth.