0

我正在开发一个用 Next.js 开发的 PWA,它必须从 Wordpress 站点读取数据,而且我对这些技术还很陌生。

我安装了这些 Wordpress 插件:

  • WPGraphQL
  • WPGraphQL CORS
  • WPGraphQL JWT 身份验证

具体来说,问题出现在最初的“登录表单”中。此表格只需要插入一个字母数字 ID(不是用户名/密码)。提交表单后,将使用查询的“where”参数中的 ID 向 Wordpress 端点运行 GraphQL 查询。就像是:

const GET_USER = gql`
    query getTicket($ticketId: String) {
        tickets(where: {ticketId: $ticketId}) {
            nodes {
                Ticket {
                    email
                    firstName
                    lastName
                    ticketId
                }
            }
        }
    }
`;

可公开访问的数据没有问题,一切正常。另一方面,如果我必须请求私人数据(例如用户电子邮件),我需要运行经过身份验证/授权的查询(授权:Bearer <token_here>)。

我知道在WPGraphQL JWT Authentication中有 2 个令牌:

  • authToken:持续5分钟,然后你需要使用refreshToken生成另一个
  • refreshToken:1 年持续时间

考虑到我不需要用户输入用户名/密码来执行允许生成令牌的变异登录,我可以使用什么方法?有没有类似没有过期的固定令牌(这可能是一个安全漏洞)?

谢谢

4

1 回答 1

0

我建议永远不要使用没有过期限制的令牌,最佳做法是每 15 分钟过期令牌并刷新令牌。

查看此链接graphql,您可以看到使用&进行身份验证的不同方法apollo server

于 2022-03-02T06:45:22.083 回答