Правильный подход к реализации запроса и аутентификации graphql с помощью Nextjs - PullRequest
0 голосов
/ 12 мая 2019

Я новичок в 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);
...