如何解决NextAuth jwt 作为 header.Authorization bearer Token Next Js
我有一个内置于节点的 API,从技术上讲,它应该获取 cookie,但没有获取它。
cookie: __Secure-next-auth.session-token || next-auth.session-token
在我的 Next JS 中,我使用 nextAuth,在我的令牌负载中,我有以下属性:
{
"name": "Justin","email": "justinzu93@gmail.com","accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7Il9pZCI6IjYwMWUwMWViZjNjZjkyMjcwMDI3ZmIzMCJ9LCJleHAiOjE2MTI4Nzc3ODEsImlhdCI6MTYxMjYxODU4MX0.BY7kVTHF5mhzTr6uUhyBmxXYYsm3LlMYnlULSzWZdc0","_id": "601e01ebf3cf92270027fb30","iat": 1612620162,"exp": 1612630962
}
所以,我的想法是从 node.JS 获取 cookie,但这是不可能的。任何帮助请
这是我的饼干的样子:
我想提一下这是我从节点获取 cookie 的方式:
const jwtExtractor = (req) => {
let token = null;
if (req.headers.authorization) {
token = req.headers.authorization.replace("Bearer ","").trim();
} else if (req.body.token) {
token = req.body.token.trim();
} else if (req.query.token) {
token = req.query.token.trim();
} else if (req && req.cookies["next-auth.session-token"]) {
const userCookie = jwt.decode(req.cookies["next-auth.session-token"]);
token = userCookie.accessToken;
}
// if (token) {
// // Decrypts token
// token = auth.decrypt(token)
// }
return token;
};
我也不知道为什么我无法访问 useEffect 钩子中的 Session()(下一个 JS)。
谢谢。
解决方法
很难确切地说出您的代码发生了什么,因为我看不到通过网络进行的实际调用。但根据您提供的信息,我最好的猜测是您的 jwtExtractor
代码有一点偏差,或者您的令牌没有通过网络传递。我的调试建议是首先查看网络调用并查看“请求标头”并确保您看到您的令牌被传递。一旦您看到它被传递,您就应该知道您的 jwtExtractor
代码应该访问哪个对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。