我正在使用“@kinde-oss/kinde-auth-nextjs/server”进行身份验证,与 PDF 文档项目进行聊天。在尝试从通过“getKindeServerSession().getUser()”获取的用户对象访问“email”属性时,我遇到了错误“Promise
这是出现问题的代码片段:
**typescript:**
import { getKindeServerSession } from '@kinde-oss/kinde-auth-nextjs/server';
import { redirect } from 'next/navigation';
import React from 'react';
const Page = async () => {
const { getUser } = getKindeServerSession();
const user = getUser();
if (!user || !user.id) redirect('/auth-callback?origin=dashboard');
// Now trying to display the email but encountering the error
return (
<div>
{user.email}
</div>
);
};
export default Page;
我尝试使用代码片段访问从 Kinde 获取的用户的电子邮件属性:
import { getKindeServerSession } from '@kinde-oss/kinde-auth-nextjs/server'
import { redirect } from 'next/navigation'
import React from 'react'
const Page = async () => {
const { getUser } = getKindeServerSession()
const user = getUser()
if (!user || !user.id) redirect('/auth-callback?origin=dashboard')
// Attempting to display the email but encountering the error
return (
<div>
{user.email}
</div>
)
}
export default Page
getUser
似乎返回了一个用户,因此您需要 await
它,并将其移动到 à useEffect
const [user, setUser] = useState();
useEffect(() => {
(async () => {
const { getUser } = getKindeServerSession()
const user = await getUser()
if (!user || !user.id) {
redirect(...);
return;
}
setUser(user);
})()
}, [])