reactjs Next.js和Facebook OAuth -NextAuth JWT回调中的类型错误(类型脚本)

jjjwad0x  于 2023-02-22  发布在  React
关注(0)|答案(1)|浏览(99)

我使用Facebook进行身份验证,并尝试获取访问令牌,以便进行API调用。这是在Next.js类型脚本中,使用NextAuth。
pages/api/auth/[...nextAuth].ts

...
export const authOptions = {
  callbacks: {
    async jwt({ token, user, account, profile }) {
      if (account) {
        token.accessToken = account.access_token
        token.id = profile.id
      }
      return token;
    },
    async session({ session, token, user }) {
      session.user.id = token.id;
      session.accessToken = token.accessToken;
      return session;
    }
  },
...

这与the docs基本相同。
因为我使用的是typescript,所以文档中也提到要使用模块扩充。
next-auth.d.ts

...
declare module "next-auth/jwt" {
  interface JWT {
    id: string;
    accessToken: string;
  }
}

declare module "next-auth" {
  interface Session {
    user: {
      id: string;
    }
  }
}

我得到了这个类型错误。我应该把所有的参数都设置成any,还是有更好的方法?

wqsoz72f

wqsoz72f1#

您遇到的问题是因为您尚未指定authOptions变量的类型。添加NextAuthOptions类型应可修复错误消息。

export const authOptions: NextAuthOptions = {

您在next-auth.d.ts文件中添加的参数是用于扩展NextAuth类型的,因此您可以添加自定义参数。在那里添加type any不会做任何事情。

相关问题