我正在尝试为我的 React 项目创建受保护的路由,在后端我有 NodeJS。我看了很多例子,他们使用 localStorage 或“fakeAuth”,所以我没有真正获得我需要的正确信息,我遇到的主要问题是,当我登录时,我应该如何保存我登录的信息ATM,这样我的前端部分就可以看到这一点。
在我的 PrivateRoute 组件中,我需要有一个布尔值来描述我的统计信息(是否登录),但我真的不明白我应该如何从我的后端我的 PrivateRoute 组件中“提取”该信息:(布尔值应该在{{??????????????}} 的地方
import React from "react";
import { Route, Redirect } from "react-router-dom";
import {authentication} from "./login.component"
import axios from 'axios';
export const PrivateRoute = ({ component: Component, ...rest}) => (
<Route
{...rest}
render={props =>
{{??????????????}} ? (
<Component {...props} />
<Redirect
to={{
pathname: "/login",
state: { from: props.location }
}}
/>
)
}
/>
);
这是我的登录组件:
import React, { useState } from 'react';
import axios from 'axios';
const Login = () => {
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const onChangeUsername = (e) => {
setUsername(e.target.value);
};
const onChangePassword= (e) => {
setPassword(e.target.value);
};
const onSubmit = async (e) => {
const user = {
username: username,
password: password
};
e.preventDefault();
await axios.post('http://localhost:5000/users/login', user);
};
也许有人可以帮助我,任何关于如何做到这一点的建议、教程、示例都会有所帮助。
牧羊人nacy
相关分类