【发布时间】:2022-07-07 12:49:51
【问题描述】:
我无法使用 getToken 获取令牌:
这个变量没问题: NEXTAUTH_SECRET=秘密 NEXTAUTH_URL=http://localhost:3000
这是我的 [...nextauth].js - 我可以做 console.log(token) 并且效果很好
import NextAuth from "next-auth";
import GoogleProvider from "next-auth/providers/google";
...
jwt: {
secret: process.env.JWT_SECRET,
encryption: true,
},
secret: process.env.NEXTAUTH_SECRET,
callbacks: {
async redirect({ url, baseUrl }) {
return Promise.resolve(url);
},
async jwt({ token, user, account, profile, isNewUser }) {
return token;
},
async session({ session, user, token }) {
return session;
},
},
});
API部分(我觉得getToken不好用):
import { getToken } from "next-auth/jwt";
const secret = process.env.NEXTAUTH_SECRET;
export default async (req, res) => {
const token = await getToken({ req, secret, encryption: true });
console.log(token);
if (token) {
// Signed in
console.log("JSON Web Token", JSON.stringify(token, null, 2));
} else {
// Not Signed in
res.status(401);
}
res.end();
};
【问题讨论】:
-
/pages/dashboard页面上似乎出现了错误。你也在那儿打电话给getToken吗?你能分享那个页面的代码吗? -
@ferhat-pektas 你解决了吗?如果是,怎么做?
-
@Jan 检查我发布的答案stackoverflow.com/a/72633273/13749032