React & Express - 用户授权失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React & Express - 用户授权失效相关的知识,希望对你有一定的参考价值。

对于我正在做的一个网络应用,我正试图创建登录功能。

在我的数据库中,我存储了一个用户,如果使用的是他们的凭证,我想显示 "已登录",如果使用的是其他凭证,则显示 "未登录"。

这是我的React组件。

export default class Account extends React.Component {
    constructor() {
        super();
        this.state = {
          isLoggedIn: false,
        };
        this.login = this.login.bind(this);
      }
      componentWillMount() {
        this.login();
      }
      login () {
        const cookies = new Cookies();
        const user = cookies.get('user');
        const pass = cookies.get('pass');
        fetch(`http://localhost:3001/user/login/${user}/${pass}`)
        .then(res => res.json())
        .then(json => {
          if(json.success) {
            this.setState ({
              isLoggedIn: true
            })
          }
        })
      }

    render() {
      if(this.state.isLoggedIn) {
        return (<p> True</p>);
      }
      else {
        return (<p> False</p>);
      }
    }
}

这是我的快递组件

/**
 * POST /user/login -> Log in
 */
router.post('/login/:user/:pass', (req, res) => {

  return User
    .findOne({username: req.param('user')})
    .then (user => user.authenticate(req.param('pass')))
    .then (auth => {
      if (auth.user !== false) {
        req.session.user = auth.user.id
      }
      res.json({success: auth.user !== false})
    })
    .catch(() => res
      .status(500)
      .json({success: false})
    );
});

module.exports = router;

结果是 isLoggedIn 无论怎样都是假的。

以上是关于React & Express - 用户授权失效的主要内容,如果未能解决你的问题,请参考以下文章

在 React 和 NodeJS 中未经授权重定向之前刷新令牌

Express & React - 如何将我的 var 从一个 .js 转移到另一个

React 前端 + Express.js 会话

不允许 CORS 原始请求 React Express

使用护照进行身份验证后,如何在 React FROM express 中重定向到用户仪表板

React 和 Express 身份验证