我正在使用 T3-app(nextjs、tRPC 等),我不知道这些 env 变量错误是否刚刚发生,或者我之前是否没有注意到它们。但是,我在文件中设置了所有环境变量.env,并在文件中设置了以下配置schema.mjs:
export const serverSchema = z.object({
DATABASE_URL: z.string().url(),
NODE_ENV: z.enum(["development", "test", "production"]),
NEXTAUTH_SECRET: z.string(),
NEXTAUTH_URL: z.preprocess(
// This makes Vercel deployments not fail if you don't set NEXTAUTH_URL
// Since NextAuth automatically uses the VERCEL_URL if present.
(str) => process.env.VERCEL_URL ?? str,
// VERCEL_URL doesnt include `https` so it cant be validated as a URL
process.env.VERCEL ? z.string() : z.string().url(),
),
GOOGLE_CLIENT_ID: z.string(),
GOOGLE_CLIENT_SECRET: z.string(),
STRIPE_SECRET_KEY: z.string(),
});
export const serverEnv = …Run Code Online (Sandbox Code Playgroud) 我正在关注本教程,了解如何在下一个身份验证会话中添加角色。不幸的是,当我添加profile属性时,我发现配置文件的未定义行为丢失。关于打字稿也有错误。这是我这边的错误,还是已知的错误,因为我找不到任何内容。
到目前为止,这是我的代码:
export const authOptions: AuthOptions = {
secret: process.env.NEXT_PUBLIC_SECRET!,
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
// profile: async (profile) => {
// return { ...profile, role: profile.role ?? Role.USER };
// },
}),
],
pages: {
signIn: "/",
},
adapter: PrismaAdapter(prisma),
};
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它与教程中的相同,当我注释掉配置文件部分时,我得到了没有角色的预期行为。任何帮助,将不胜感激!
Next.js 版本:13.4.1(应用程序目录)