如何在apollo服务器中将用户添加到上下文对象?

亚当·苏查达

当我使用REST api时,我曾经将用户放置在req.user上,但是现在我正在做我的第一个graphql auth,并且我很难将用户放置在上下文对象上。

这是我要完成的工作,但不起作用:

  1. 从令牌获取管理员ID,并从数据库获取管理员
  2. 将获取的管理员添加到上下文对象,以便我可以在每个解析器之前检查管理员权限
export const validateAccessToken = async (req) => {
  try {
    const accessToken = req.headers.authorization.slice(7);
    if (!accessToken) throw new AuthenticationError('Unauthorized access');

    const { id } = verify(accessToken, process.env.JWT_ACCESS_SECRET);

    const admin = await Admin.findById(id);

    return admin;
  } catch {
    return null;
  }
};
// index.js
import { validateAccessToken } from './auth';

const server = new ApolloServer({
    modules: [auth],
    context: ({ req, res }) => ({ req, res, admin: validateAccessToken(req) }),
  });

admincontextPromise { <pending> }

赫库

上下文函数本身可以返回承诺。您可以使函数异步,也可以使用链接API:

import { validateAccessToken } from './auth';

const server = new ApolloServer({
  modules: [auth],
  context: async ({ req, res }) => ({ req, res, admin: await validateAccessToken(req) }),
});


const server = new ApolloServer({
  modules: [auth],
  context: ({ req, res }) =>
    validateAccessToken(req).then(admin => ({ req, res, admin })),
});

现在,管理员应该成为上下文的一部分,而不再是未完成的承诺。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加到上下文菜单

来自分类Dev

在实体框架中添加到上下文

来自分类Dev

QML报告ReferenceError:未在添加到上下文的C ++对象上定义XYZ

来自分类Dev

将相同的对象添加到上下文和列表

来自分类Dev

QML报告ReferenceError:未在添加到上下文的C ++对象上定义XYZ

来自分类Dev

解析服务器 - 将用户添加到角色

来自分类Dev

如何将Windows Terminal添加到上下文菜单?

来自分类Dev

如何将项目添加到上下文菜单?

来自分类Dev

如何将KRename添加到上下文菜单

来自分类Dev

Pymodbus将浮点数添加到服务器上下文寄存器

来自分类Dev

将父对象保存到上下文中时,将子对象添加到表中

来自分类Dev

如何在Windows 7中将图标添加到自定义上下文菜单项?

来自分类Dev

如何在任务栏上的Steam上下文菜单中将应用程序添加到Pinned

来自分类Dev

在Spring中将侦听器添加到servlet上下文

来自分类Dev

google Chrome扩展程序,将标签添加到上下文菜单

来自分类Dev

将组限制添加到上下文菜单Odoo

来自分类Dev

将Nautilus脚本添加到上下文菜单/操作

来自分类Dev

将正确放置的图层添加到上下文

来自分类Dev

将用户添加到WebLogic嵌入式LDAP服务器

来自分类Dev

以root权限将用户添加到远程服务器

来自分类Dev

将用户添加到 IBM 目录服务器 (LDAP) 中的组

来自分类Dev

Apollo服务器:如何从REST API数据源访问Dataloader中解析器之外的“上下文”

来自分类Dev

Apollo nodejs服务器;编写插件时如何在请求上下文中获取变异/查询架构路径?

来自分类Dev

如何在xmpp中将用户添加到名册中?

来自分类Dev

如何在C#Winform中将用户添加到SQL Server数据库

来自分类Dev

如何在Kotlin中将用户硬币添加到现有硬币中?

来自分类Dev

如何在FreeBSD中将用户添加到组中

来自分类Dev

如何在xmpp中将用户添加到名册中?

来自分类Dev

如何将用户定义的对象添加到LinkedList?

Related 相关文章

  1. 1

    添加到上下文菜单

  2. 2

    在实体框架中添加到上下文

  3. 3

    QML报告ReferenceError:未在添加到上下文的C ++对象上定义XYZ

  4. 4

    将相同的对象添加到上下文和列表

  5. 5

    QML报告ReferenceError:未在添加到上下文的C ++对象上定义XYZ

  6. 6

    解析服务器 - 将用户添加到角色

  7. 7

    如何将Windows Terminal添加到上下文菜单?

  8. 8

    如何将项目添加到上下文菜单?

  9. 9

    如何将KRename添加到上下文菜单

  10. 10

    Pymodbus将浮点数添加到服务器上下文寄存器

  11. 11

    将父对象保存到上下文中时,将子对象添加到表中

  12. 12

    如何在Windows 7中将图标添加到自定义上下文菜单项?

  13. 13

    如何在任务栏上的Steam上下文菜单中将应用程序添加到Pinned

  14. 14

    在Spring中将侦听器添加到servlet上下文

  15. 15

    google Chrome扩展程序,将标签添加到上下文菜单

  16. 16

    将组限制添加到上下文菜单Odoo

  17. 17

    将Nautilus脚本添加到上下文菜单/操作

  18. 18

    将正确放置的图层添加到上下文

  19. 19

    将用户添加到WebLogic嵌入式LDAP服务器

  20. 20

    以root权限将用户添加到远程服务器

  21. 21

    将用户添加到 IBM 目录服务器 (LDAP) 中的组

  22. 22

    Apollo服务器:如何从REST API数据源访问Dataloader中解析器之外的“上下文”

  23. 23

    Apollo nodejs服务器;编写插件时如何在请求上下文中获取变异/查询架构路径?

  24. 24

    如何在xmpp中将用户添加到名册中?

  25. 25

    如何在C#Winform中将用户添加到SQL Server数据库

  26. 26

    如何在Kotlin中将用户硬币添加到现有硬币中?

  27. 27

    如何在FreeBSD中将用户添加到组中

  28. 28

    如何在xmpp中将用户添加到名册中?

  29. 29

    如何将用户定义的对象添加到LinkedList?

热门标签

归档