GithubHelp home page GithubHelp logo

Is there any reason to send token twice (in the header and in the query) in case of using verifyToken and refreshToken? about django-graphql-jwt HOT 4 CLOSED

flavors avatar flavors commented on May 27, 2024
Is there any reason to send token twice (in the header and in the query) in case of using verifyToken and refreshToken?

from django-graphql-jwt.

Comments (4)

mongkok avatar mongkok commented on May 27, 2024

Hi @TitanFighter,
The authentication header is not used to verify and refresh tokens, credentials are not required.

from django-graphql-jwt.

mongkok avatar mongkok commented on May 27, 2024

On the other hand I think it's a good idea to refresh a token using the authentication header, but in this case I would prefer a token as a required field and defined within the GraphQL/schema.

from django-graphql-jwt.

TitanFighter avatar TitanFighter commented on May 27, 2024

Hi @mongkok

The authentication header is not used to verify and refresh tokens, credentials are not required.

Yes, I know, but what I am thinking about is the next case: when a user is already authenticated, we already use authentication header and additionally from time to time we anyway refresh it, so in this case we can refresh token based on the header. It was just a proposition :)

Regarding token verification... I implemented it in the wrong way... Now I see that at first it should be verified and after this it should be add to the header.

from django-graphql-jwt.

mongkok avatar mongkok commented on May 27, 2024

Is a good proposal @TitanFighter, but for this package I would prefer a required token within GraphQL schema.

from django.utils.translation import ugettext as _

import graphene
from graphene.types.generic import GenericScalar
from graphql_jwt.exceptions import JSONWebTokenError
from graphql_jwt.utils import get_authorization_header, get_payload


class Verify(graphene.Mutation):
    payload = GenericScalar()

    class Arguments:
        token = graphene.String()

    @classmethod
    def mutate(cls, root, info, token=None, **kwargs):
        if token is None:
            token = get_authorization_header(info.context)

        if token is None:
            JSONWebTokenError(_('Token is required'))

        return cls(payload=get_payload(token, info.context))

from django-graphql-jwt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.