React Router:如果直接访问,则将登录用户重定向到帐户

时间:2017-03-22 20:44:43

标签: reactjs meteor react-router

我想通过直接输入网址来登录我的主页,然后重新路由到他们的帐户,但我希望他们能够访问主页,如果他们来自应用程序内部,那是什么这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

您可以这样做的一种方法是检查用户所在的上一页。因此,在您的主页React组件的componentWillMount中,插入如下内容:

import { Meteor } from 'meteor/meteor';
import { browserHistory } from 'react-router';
...
...
componentWillMount() {
  if (Meteor.userId()) {
    const referrer = document.referrer;
    if (!referrer.includes('yoururl')) { // you can use Meteor.absoluteUrl() or example.com
      browserHistory.push('/dashboard') // push whatever page you want
    }
  }
}

这将检查用户是否存在以及他们来自何处。如果用户存在且未来自您的网站,他们将直接转到/dashboard。否则,页面将正常加载。