C# 用户登录后路由到用户帐户

C# 用户登录后路由到用户帐户,c#,reactjs,asp.net-core,authentication,jwt,C#,Reactjs,Asp.net Core,Authentication,Jwt,我已经在ReactJS中创建了一个登录组件。用户可以使用其电子邮件和密码登录。我希望用户在成功登录后路由到他的用户帐户。我使用了JWT身份验证,身份验证正确发生 有没有办法在登录后从API获取数据?如果我可以从服务器获取userId,我可以路由到用户帐户。但是我不知道如何通过用户登录获取相关的用户数据。我该怎么做 这是我的登录组件login.js: export default class Login extends Component { state = {}; submit

我已经在ReactJS中创建了一个登录组件。用户可以使用其电子邮件和密码登录。我希望用户在成功登录后路由到他的用户帐户。我使用了JWT身份验证,身份验证正确发生

有没有办法在登录后从API获取数据?如果我可以从服务器获取userId,我可以路由到用户帐户。但是我不知道如何通过用户登录获取相关的用户数据。我该怎么做

这是我的登录组件login.js:

export default class Login extends Component {

    state = {};
    submitHandler = e => {
        e.preventDefault()

        const logingdata ={
            email : this .Email,
            password: this .Password
        }
           axios
           .post('/api/UserLogin', logingdata)

           .then(response => {
               console.log(response); //to print response in console in developper tool
               //const currentuser = JSON.parse(atob(response.data.token.split(".")[1])); 
               localStorage.setItem('login', response.data.token);
               console.log(this.email);
               
           })
           .catch(error => {
               console.log(error => console.log(error.response.data))
           })
    }

    render() {    
        return (
            <div className="outer">
            <div className="inner"> 
            <form onSubmit={ this.submitHandler}>

                <h3>Log in</h3>

                <div className="form-group">
                    <label>Email</label>
                    <input type="text" className="form-control" placeholder="Enter email" onChange ={ e => this.Email = e.target.value} />
                </div>

                <div className="form-group">
                    <label>Password</label>
                    <input type="text" className="form-control" placeholder="Enter password" onChange ={ e => this.Password = e.target.value} />
                </div>

                <div className="form-group">
                    <div className="custom-control custom-checkbox">
                        <input type="checkbox" className="custom-control-input" id="customCheck1" />
                        <label className="custom-control-label" htmlFor="customCheck1">Remember me</label>
                    </div>
                </div>
                 
                
                
                <br></br>
                <button type="submit" className="btn btn-dark btn-lg btn-block">Sign in</button>
                <p className="forgot-password text-right">
                    Forgot <Link to= "/Forgotpassword" >password?</Link>
                </p>
            </form>
            </div>
            </div>
        );
    }
}

通常,userId位于JWT内部

import jwt from 'jsonwebtoken';

function getUserIdFromRawToken(raw) {
  const token = jwt.decode(raw, { complete: true });
  const userId = token.payload.sub
  return userId
}

不知道你想做什么。您的令牌存储在本地,因此基本上,如果您也拥有后端,您可以将相关的用户数据放在那里。此外,登录后,您可能必须将令牌与每个请求一起发送到API以进行身份验证。我想根据登录输入详细信息从API获取用户ID。您是否也可以在后端包含API路由以对用户进行身份验证?这可能是一个后端discussion@alexYepes非常感谢。我用后端代码更新了这个问题。你能包括你使用控制器的路线吗?
    {
        [Key]
        public int Id { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
    }
import jwt from 'jsonwebtoken';

function getUserIdFromRawToken(raw) {
  const token = jwt.decode(raw, { complete: true });
  const userId = token.payload.sub
  return userId
}