Маршрутизаторы в Next.js + реагируют - PullRequest
0 голосов

ребята.У меня есть проект на Next.js и React, который не использует библиотеки для маршрутизации.Как мне реализовать средства защиты маршрутов (защищенные маршруты) для неаутентифицированных пользователей?Или я должен просто перенаправить их, если в cookie нет токена.TNX!

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Вы можете зарегистрироваться в getInitialProps с некоторым ок.Логика оценивает куки, чтобы решить, следует ли перенаправить или нет.

import Router from 'next/router'

const redirectToLogin = res => {  
  if (res) {
    res.writeHead(302, {Location: '/login'})
    res.end()
    res.finished = true
  } else {
    Router.push('/login')
  }
}


class ProtectedPage extends React.Component {
  static async getInitialProps ({req, res}) {
    // get cookie from req.headers or from document.cookie in browser
    // this cookie must not contain sensitive information!
    const profile = getProfileFromCookie(req)
    if (!profile) {
      redirectToLogin(res)
    }
  }
}

Посмотрите на этот пример кода https://github.com/lipp/login-with/blob/master/example/nextjs/with-profile.js#L8 (я автор).

0 голосов
/ 04 июня 2018

использовать библиотеку реактив-роутер.Это маленький и простой.Кроме того, я думаю, что next.js также поддерживает маршруты.Пожалуйста, проверьте их документацию.

...