我使用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
,还是有更好的方法?
1条答案
按热度按时间wqsoz72f1#
您遇到的问题是因为您尚未指定authOptions变量的类型。添加NextAuthOptions类型应可修复错误消息。
您在next-auth.d.ts文件中添加的参数是用于扩展NextAuth类型的,因此您可以添加自定义参数。在那里添加type any不会做任何事情。