我正在尝试创建一个用户可以登录的 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);
});
}
};