Я новичок в Nextjs. Я проверяю аутентификацию с помощью запроса graphql.
Ниже код работает нормально. Я могу защитить страницу, сделав ее доступной только для аутентифицированного пользователя, и она также может успешно запросить мой внутренний сервер для отображения списка элементов
Тем не менее, я делаю это правильно? Поскольку использование SSR затрагивает как сервер, так и клиента, я хотел бы выяснить, является ли моя реализация ниже правильным подходом. Если моя реализация неверна, оцените указатели, чтобы я мог делать правильные вещи
class Items extends React.Component {
static async getInitialProps(context) {
const { loggedInUser } = await checkLoggedIn(context.apolloClient);
if (!loggedInUser.me) {
// if not logged in, send to signin page
redirect(context, "/signin");
}
return {
user: loggedInUser.me
};
}
render() {
console.log(this.props);
const {
getItems: { getItemsByVendorId }
} = this.props;
return (
<Layout>
<div>Items</div>
{getItemsByVendorId &&
getItemsByVendorId.map(x => (
<div key={x._id}>
<p>{x.name}</p>
</div>
))}
</Layout>
);
}
}
export default graphql(GET_ITEMS_BY_VENDORID, {
name: "getItems",
options: ({ user }) => ({
variables: {
vendorId: user._id
}
})
})(Items);