如何在Gatsby中验证用户

生产

我已按照教程在gatsby项目中实现身份验证问题是我首先设置了项目,路由是从pages文件夹进行的,然后实现了上面的身份验证代码,但是它仍然从页面文件夹而不是从app.js文件获取路由有人可以帮助我如何从app.js路由组件,而不是从pages文件夹使用。

这是我的gatsby-nodejs文件

// Implement the Gatsby API “onCreatePage”. This is
// called after every page is created.
exports.onCreatePage = async ({ page, actions }) => {
  const { createPage } = actions

  // page.matchPath is a special key that's used for matching pages
  // only on the client.
  if (page.path.match(/^\/app/)) {
    page.matchPath = "/app/*"

    // Update the page.
    createPage(page)
  }
}

这是src / pages.app.js

import React from "react"
import { Router } from "@reach/router"
import Layout from "../components/layout"
import Home from '../components/dashboard/home/container'
import Login from '../components/marketing/home/pulsemetrics'
import { isLoggedIn } from "../services/auth"


console.log('vvvvvvvvvvvvvvvvvvvvv')

const PrivateRoute = ({ component: Component, location, ...rest }) => {
    console.log('hjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiii')
  if (!isLoggedIn() && location.pathname !== `/app/login`) {
    // If the user is not logged in, redirect to the login page.
    navigate(`/app/login`)
    return null
  }

  return <Component {...rest} />
}

const App = () => (
  <Layout>
    <Router>
      <PrivateRoute path="/ddddddddddddddddddd" component={Home} />
      <Login path="/" />
    </Router>
  </Layout>
)

export default App
埃塔罕

由于您的PrivateRoute逻辑使用该路径来检查登录,因此您所拥有的路径App.js应该/app/在它们前面。此外,您的gatsby-node.js文件实际上是在说,对于以app开头的路由,它应该创建一个新页面。src/pages/app.js的任务是定义应如何创建这些页面(因为它们不是gatsby通常生成的静态页面)

import React from "react"
import { Router } from "@reach/router"
import Layout from "../components/layout"
import Home from '../components/dashboard/home/container'
import Login from '../components/marketing/home/pulsemetrics'
import { isLoggedIn } from "../services/auth"


console.log('vvvvvvvvvvvvvvvvvvvvv')

const PrivateRoute = ({ component: Component, location, ...rest }) => {
    console.log('hjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjiiiiiiiiiiiiiiiiiii')
  if (!isLoggedIn() && location.pathname !== `/app/login`) {
    // If the user is not logged in, redirect to the login page.
    navigate(`/app/login`)
    return null
  }

  return <Component {...rest} />
}

const App = () => (
  <Layout>
    <Router>
      <PrivateRoute path="/app/home" component={Home} />
      <Login path="/app/login" />
    </Router>
  </Layout>
)

export default App

阅读gatsby仅客户端路由文档以供参考或查看此github问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中验证用户输入

来自分类Dev

如何在Laravel中验证请求用户?

来自分类Dev

如何在python中验证用户输入

来自分类Dev

如何在Powershell中安全验证AD用户(加密凭据)

来自分类Dev

如何在Amazon Cognito中为某些用户禁用验证?

来自分类Dev

如何在PHP中验证用户名

来自分类Dev

如何在Firebase中管理用户的不同身份验证

来自分类Dev

如何在Grav中禁用用户名验证?

来自分类Dev

如何在 Laravel 5.4 中手动验证用户

来自分类Dev

如何在 Selenium 中验证电子邮件用户输入?

来自分类Dev

如何在 Symfony 4 的功能测试中验证用户身份

来自分类Dev

如何在ASP.NET MVC身份验证中创建和验证用户?

来自分类Dev

如何在Gatsby中反转页面顺序?

来自分类Dev

如何在Jquery中验证?

来自分类Dev

如何在使用AngularFire的Firebase中通过用户身份验证使用路由?

来自分类Dev

如何在Django中与经过身份验证的用户进行AJAX请求?

来自分类Dev

如何在Olingo ODataServiceFactory中获取经过身份验证的用户的ID

来自分类Dev

如何在CQ 6中通过LDAP通过目录对用户进行身份验证

来自分类Dev

如何在Java中根据AD对用户进行身份验证

来自分类Dev

如何在pam策略中为不同的用户或组设置不同的身份验证要求?

来自分类Dev

如何在yubikey python中为注册用户进行身份验证

来自分类Dev

在Laravel中如何在没有DB的情况下验证用户身份?

来自分类Dev

如何在Firebase中检查用户电子邮件和密码验证以登录

来自分类Dev

如何在Swift 5中验证用户的时间是正确的并且没有欺骗应用程序?

来自分类Dev

如何在Spartacus中手动验证用户/客户端?

来自分类Dev

如何在Blazor应用程序中仅对经过身份验证的用户响应图像数据?

来自分类Dev

如何在C#中验证Windows应用程序的咸密码和用户名?

来自分类Dev

WebSphere Liberty如何在server.xml中设置经过身份验证的用户?

来自分类Dev

如何在Laravel中显示对身份验证用户的链接删除?

Related 相关文章

  1. 1

    如何在python中验证用户输入

  2. 2

    如何在Laravel中验证请求用户?

  3. 3

    如何在python中验证用户输入

  4. 4

    如何在Powershell中安全验证AD用户(加密凭据)

  5. 5

    如何在Amazon Cognito中为某些用户禁用验证?

  6. 6

    如何在PHP中验证用户名

  7. 7

    如何在Firebase中管理用户的不同身份验证

  8. 8

    如何在Grav中禁用用户名验证?

  9. 9

    如何在 Laravel 5.4 中手动验证用户

  10. 10

    如何在 Selenium 中验证电子邮件用户输入?

  11. 11

    如何在 Symfony 4 的功能测试中验证用户身份

  12. 12

    如何在ASP.NET MVC身份验证中创建和验证用户?

  13. 13

    如何在Gatsby中反转页面顺序?

  14. 14

    如何在Jquery中验证?

  15. 15

    如何在使用AngularFire的Firebase中通过用户身份验证使用路由?

  16. 16

    如何在Django中与经过身份验证的用户进行AJAX请求?

  17. 17

    如何在Olingo ODataServiceFactory中获取经过身份验证的用户的ID

  18. 18

    如何在CQ 6中通过LDAP通过目录对用户进行身份验证

  19. 19

    如何在Java中根据AD对用户进行身份验证

  20. 20

    如何在pam策略中为不同的用户或组设置不同的身份验证要求?

  21. 21

    如何在yubikey python中为注册用户进行身份验证

  22. 22

    在Laravel中如何在没有DB的情况下验证用户身份?

  23. 23

    如何在Firebase中检查用户电子邮件和密码验证以登录

  24. 24

    如何在Swift 5中验证用户的时间是正确的并且没有欺骗应用程序?

  25. 25

    如何在Spartacus中手动验证用户/客户端?

  26. 26

    如何在Blazor应用程序中仅对经过身份验证的用户响应图像数据?

  27. 27

    如何在C#中验证Windows应用程序的咸密码和用户名?

  28. 28

    WebSphere Liberty如何在server.xml中设置经过身份验证的用户?

  29. 29

    如何在Laravel中显示对身份验证用户的链接删除?

热门标签

归档