【发布时间】:2020-04-22 02:59:01
【问题描述】:
我正在跨授权请求发送 JWT 令牌,但是我似乎每次都无法获取令牌解码。它适用于一种方法,但不适用于另一种方法。第一个 sn-p 从服务器端给出一个“解码”的令牌结果,但第二个没有。
public async getAllUsers(req: Request, res: Response) {
try {
const payload = req["decoded"]; // gives the token decoded
if (payload) {
let users: ILoginResult = await UserData.getAllUsers(payload);
res.status(users.status).send(users.result);
}
} catch (e) {
res.status(500).send({ error: e.toString() });
}
}
public async getAccountDetails(req: Request, res: Response) {
try {
const user = req["decoded"]; // always undefined
let details: IDetails = await AccountData.getAccountDetails(name);
res.status(200).send(details);
} catch (e) {
let err = e.toString();
res.status(500).send({ error: err });
}
}
邮递员的请求包含一个bearer token,它在登录时提供并在应用程序的其他部分使用。不知道为什么它适用于一个而不是另一个。如果有人能更好地解释这里发生的事情和/或提供提示、建议和建议,我将不胜感激。
编辑 - 添加请求详细信息
获取请求至:http://localhost:5000/api/v1/account
带有令牌:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiYWRtaW4iLCJpYXQiOjE1Nzc5OTUwMjUsImV4cCI6MTU3ODE2NzgyNSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdCJ9.--msLba1VPs4Nv_B9YL6fk2DFHkQCgiVvDJFPt_UnDk
decoded 属性用于我正在遵循的教程中,该教程似乎是从服务器端添加的,但解释得不好,我还没有找到好的替代/解释。我认为它也没有任何中间件。对 alt 方法非常开放。
【问题讨论】:
-
您在请求处理程序中的 getAccountDetails 之前是否使用了中间件?我正在考虑如何在请求对象中设置“解码”属性?...
-
@ranieribt 我错了,完全有一个中间件在路由上工作,这似乎是问题,因为它创建了解码的属性。谢谢!
-
你在学习哪个教程?
-
@SuleymanSah 我相信来自 Scotch.IO 的 Vue 和 Node one 的身份验证,尽管我从多个中挑选,因为我无法在一个中找到我想要的一切。
-
那么您的问题解决了吗?
标签: javascript node.js typescript jwt