django-graphql-jwt JWT_COOKIE_SAMESITE 不工作

Posted

技术标签:

【中文标题】django-graphql-jwt JWT_COOKIE_SAMESITE 不工作【英文标题】:django-graphql-jwt JWT_COOKIE_SAMESITE not working 【发布时间】:2021-10-18 20:15:20 【问题描述】:

我正在使用Django GraphQL JWT Library 和Django GraphQL Auth

我不断收到此错误 google chrome error

在 http://localhost:3000/ 和 https://localhost:3000/ 上都有这个反应代码(为相关性而修剪)

    const [login] = useMutation(LOGIN_MUTATION, 
        variables: 
            email: email,
            password: password
        ,
        onCompleted: ( tokenAuth ) => 
            if (tokenAuth.success) 
                setToken(tokenAuth.token);
            
        
    );

现在,当我从 graphiql 页面运行这个突变时,它可以工作,我最终得到一个 JWT cookie,但不在反应站点上

mutation 
  tokenAuth(
    email:"********"
    password:"*********"
  )
    token
    refreshToken
    success
    errors
  

这行不通

GRAPHQL_JWT = 
    "JWT_COOKIE_SAMESITE": 'None',
    "JWT_ALLOW_ARGUMENT": True

添加这些不起作用

    "CSRF_COOKIE_SECURE": True,
    "SESSION_COOKIE_SECURE": True,
    "CSRF_COOKIE_SAMESITE": 'None',
    "SESSION_COOKIE_SAMESITE": 'None',
    "JWT_VERIFY_EXPIRATION": True,

将这些添加到 django 设置也不起作用

SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = 'None'

CSRF_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'None'

我已经被困在这个问题上大约 3 天了,现在我正准备把自己扔进河里去建桌子。请帮忙。

【问题讨论】:

我不知道它是否相关,但这个github.com/flavors/django-graphql-jwt/issues/216 有一个github线程。你能更新你的 django-graphql-jwt 版本吗? @JechChua 天哪,原来 Django GraphQL Auth 不支持 GraphQL JWT Library v3.1,我不得不卸载然后更新。非常感谢,我可能又被困了几天。我对***有点陌生,所以我不完全确定它是如何工作的。您现在是否输入答案并我将其标记为已完成? 【参考方案1】:

在版本 v0.3.2 上为 django-graphql-jwt 添加了对 JWT_COOKIE_SAMESITE 设置的支持。你可以在这里查看发布releases。而当前的 django-graphql-auth 包依赖于 django-graphql-jwt v0.3.0。更新您的要求将解决此问题。

【讨论】:

以上是关于django-graphql-jwt JWT_COOKIE_SAMESITE 不工作的主要内容,如果未能解决你的问题,请参考以下文章

DJANGO-GRAPHQL-JWT:我们如何知道刷新令牌发布后的年龄?

django-graphql-jwt JWT_COOKIE_SAMESITE 不工作

在 django-graphql-jwt 中使用 @login_required 进行查询/突变会导致 graphql.error.located_error.GraphQLLocatedError

基于类的视图django中的JWT验证

无效的凭据引发身份验证突变异常

忘记了 django 和 graphql 的密码?