小编Vas*_*jis的帖子

更新 urql 缓存而不进行突变

我正在开发一个具有 GraphQL 后端并使用 JWT 进行身份验证的全栈项目。我的访问和刷新令牌存储在前端的 localStorage 中。

当用户注销时,我只是清除 localStorage 中的令牌,并且我还想重置获取登录用户的缓存查询,因此它返回 null (意味着不再有登录用户)。但是,我没有执行突变。一切都发生在客户端。我无法将突变名称放入urql的cacheExchangeupdates对象中并在执行突变时更新缓存。

我以为我可以在后端添加一个被调用的突变logout并返回 true,但我真的相信有一种更优雅的方法可以做到这一点。

jwt graphql urql

7
推荐指数
0
解决办法
568
查看次数

使用 Prisma 2 从查询中排除用户密码

最近我开始做一个新项目来学习一些新技术(Prisma 2、带有 Express 的 REST api 等)。不过,我遇到了一个问题。

我的应用程序有一个用户身份验证系统,并且用户模型有一个密码列。因此,当客户端请求用户时,后端会从数据库中选择所有列,包括密码(顺便说一下,密码是经过哈希处理的)。

我尝试不选择 prisma findMany 上的密码列,如下所示:

await prisma.user.findUnique({
  where: {
    ...
  },
  select: {
    password: false
  }
});
Run Code Online (Sandbox Code Playgroud)

但我收到了 prisma 的一个错误,说选择应该至少包含一个真正的值。因此,我添加id: true到选择中。我发出了一个 api 请求,我看到只有 id 返回给用户。

据我了解,prisma 希望我将所有我关心的列添加到选择对象中。但是,我需要来自用户的大量列,并且我正在进行大量查询来获取用户,而且我不能每次都编写我需要的所有字段。

所以,我想问你是否有合法的方法可以做到这一点。

PS:我不采取“使用 rawQuery 代替”作为解决方案。

rest node.js prisma prisma2

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

graphql ×1

jwt ×1

node.js ×1

prisma ×1

prisma2 ×1

rest ×1

urql ×1