use*_*666 3 typescript reactjs next.js next-auth
我正在为我的 Next js 应用程序创建一个登录方法,并使用 GitHub 存储库提供的推荐文档。
但是,当我到达 auth 文件夹步骤时,我收到此错误。对于登录提供商。
在 [...nextauth].ts 中
This expression is not callable.
Type 'typeof import("/Users/farishtawazir/Desktop/template/next-auth")' has no call signatures.ts(2349)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么,因为我已按照文档进行操作,但仍然收到此错误
这是文件代码
import NextAuth from 'next-auth'
import Auth0Provider from 'next-auth/providers/auth0'
import FacebookProvider from 'next-auth/providers/facebook'
import GithubProvider from 'next-auth/providers/github'
import GoogleProvider from 'next-auth/providers/google'
import TwitterProvider from 'next-auth/providers/twitter'
// import AppleProvider from "next-auth/providers/apple"
// import EmailProvider from "next-auth/providers/email"
// For more information on each option (and a full list of options) go to
// https://next-auth.js.org/configuration/options
export default NextAuth({
// https://next-auth.js.org/configuration/providers/oauth
providers: [
/* EmailProvider({
server: process.env.EMAIL_SERVER,
from: process.env.EMAIL_FROM,
}),
// Temporarily removing the Apple provider from the demo site as the
// callback URL for it needs updating due to changing domains
Providers.Apple({
clientId: process.env.APPLE_ID,
clientSecret: {
appleId: process.env.APPLE_ID,
teamId: process.env.APPLE_TEAM_ID,
privateKey: process.env.APPLE_PRIVATE_KEY,
keyId: process.env.APPLE_KEY_ID,
},
}),
*/
FacebookProvider({
clientId: process.env.FACEBOOK_ID,
clientSecret: process.env.FACEBOOK_SECRET,
}),
GithubProvider({
clientId: process.env.GITHUB_ID,
clientSecret: process.env.GITHUB_SECRET,
}),
GoogleProvider({
clientId: process.env.GOOGLE_ID,
clientSecret: process.env.GOOGLE_SECRET,
}),
TwitterProvider({
clientId: process.env.TWITTER_ID,
clientSecret: process.env.TWITTER_SECRET,
}),
Auth0Provider({
clientId: process.env.AUTH0_ID,
clientSecret: process.env.AUTH0_SECRET,
issuer: process.env.AUTH0_ISSUER,
}),
],
theme: {
colorScheme: 'light',
},
callbacks: {
async jwt({ token }: unknown) {
token.userRole = 'admin'
return token
},
},
})
Run Code Online (Sandbox Code Playgroud)
您必须"esModuleInterop": true在 tsconfig.json 中设置为 true
或者你也可以尝试:
import * as next-auth from 'next-auth';
Run Code Online (Sandbox Code Playgroud)
编辑:
import NextAuth from 'next-auth';从文件导入next-auth.d.ts
我认为您应该将文件移至本文档中所述的类型文件夹https://next-auth.js.org/getting-started/typescript#module-augmentation
如果您重命名/删除文件,错误就会消失
| 归档时间: |
|
| 查看次数: |
3625 次 |
| 最近记录: |