无论如何,当我获取响应api时,是否可以在没有任何令牌的情况下对用户类型(用户和供应商)进行身份验证并转到其他页面?

是否可以通过响应JSON对结果进行身份验证而无需任何令牌身份验证?我的项目有两种类型的用户(用户= 1和供应商= 2)。当他们登录到我的系统时,我需要这两个用户都有不同的页面。响应JSON如下:

enter image description here

该用户是普通用户,将进入用户页面,而其他用户类型为2的用户将进入供应商页面。

这是我的代码:

login(){
  if(this.state.loginEmail && this.state.loginPassword){
    PostData('api/users/login', this.state).then ((result) => {
      let responseJSON = result;
      console.log(responseJSON)
      if(responseJSON.user){
        sessionStorage.setItem('user', responseJSON);
        // console.log("Home Page")
        this.setState({redirect: true});
      }else{
        console.log("Login Error")
        alert("wrong user credential")
      }
    });
  }
}

在渲染组件上,当用户成功登录时,我使用重定向功能转到“ / home”主页:

render(){

    if(this.state.redirect){
      return (<Redirect to={{
        pathname: '/home',
        state: { loginEmail : this.state.loginEmail }}}/>)
    }
    if(sessionStorage.getItem("user")){
      return (<Redirect to ={'/home'}/>)
    }
    return (
    <div className="login-background">
    <div className = " login-form">
        <h1>Login</h1>
        <div className = "txtb">
        <input type="text" name="loginEmail" placeholder= "email" onChange={this.onChange}/>
        </div>
        <div className = "txtb">
        <input type="password" name="loginPassword" placeholder="password" onChange={this.onChange}/>
        </div>
        <input type="submit" value="Login" className="logbtn" onClick={this.login}/>
        <div className = "bottom-text">
          Dont have account? <a href = "/signUp">Sign up</a>
        </div>
    </div> 
    </div>
    );
  }

我想要的是当userType等于2时,它们将转到供应商页面“ / supplier”。

评论