Auth.js 与 Sveltekit SSR 兼容吗?

问题描述 投票:0回答:1

我正在尝试创建一个用户可以登录的 Sveltekit 应用程序。登录过程由自行创建的 API 处理,因此我想使用 Auth.js 凭据提供程序。 当我在 +page.server.ts 文件中将 SignIn 方法调用为 FormAction 时,收到错误消息“窗口未定义”,这是有道理的。这是否意味着 Auth.js 与服务器端渲染不兼容,或者我还可以调整其他内容吗?

我的代码:

//hooks.server.ts
SvelteKitAuth({
        providers: [
            // @ts-ignore
            Credentials({
                name: "credentials",
                async authorize(credentials, req) {
                    // TODO: Call Api
                    const user = { id: "1", name: "J Smith", email: "[email protected]" }

                    if (user) {
                        return user
                    } else {
                        return null
                    }
                }
            })
        ],
    });
//+page.server.ts
export const actions = {
    default: async ({ cookies, request }: { cookies: any, request: any }) => {
        const data = await request.formData();
        const credentials = {
            username: data.get('username'),
            password: data.get('password')
        };

        signIn('credentials', credentials)
            .then(response => {
                console.log('Success');
            })
            .catch(error => {
                console.error('error', error);
            });
    }
};
authorization server-side-rendering sveltekit
1个回答
2
投票

@auth/sveltekit/client
signIn()
记录作为“客户端启动登录流程的方法[...]”,并且其中一个开发者最近确认没有对服务器的官方支持-还可以侧面使用。

© www.soinside.com 2019 - 2024. All rights reserved.