首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有用户ID有效负载的fastify-jwt签名令牌

带有用户ID有效负载的fastify-jwt签名令牌
EN

Stack Overflow用户
提问于 2021-08-30 09:01:27
回答 1查看 1.4K关注 0票数 0

我正在做一个简单的登录函数,它将返回一个带有用户ID的令牌。

我已经用键在fastify实例上注册了fastify,并在对符号函数的调用中添加了用户id。

代码auth.js

代码语言:javascript
运行
复制
import Fastify from "fastify";
import fastifyJwt from "fastify-jwt";
import { users } from "../dummy-data/users.js";

const fastify = Fastify();
const SECRET_KEY = "secret";
fastify.register(fastifyJwt, { secret: SECRET_KEY });

......

const signIn = function (req, res) {
  const { email, password } = req.body;
  const foundUser = users.find(
    (user) => user.email === email && user.password === password
  );
  const { id } = foundUser;
  const accessToken = fastify.jwt.sign({ id }, SECRET_KEY);
  res.status(200).send({ accessToken });
}

但这不起作用,它显示了以下错误:

"message":“预期”选项成为普通对象“”。

代码语言:javascript
运行
复制
{
  "statusCode": 500,
  "error": "Internal Server Error",
  "message": "Expected \"options\" to be a plain object."
}

有人知道正确的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-30 10:15:05

签名时不需要传递SECRET_KEY

代码语言:javascript
运行
复制
const accessToken = fastify.jwt.sign({ id });

因为它已经在注册时传递给jwt-plugin:

代码语言:javascript
运行
复制
fastify.register(fastifyJwt, { secret: SECRET_KEY });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68981443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档