如果用户未经过validation,则显示公共逻辑React JS和Node API

如果用户没有login,我怎样才能显示公共(即:家庭,关于,身份validation的东西)?

我知道SPA并不意味着刷新,但我希望它改变页面上的大部分脚本。

环境:在单独的项目中使用ReactJS,WebPack和现有的NodeJS API。

我浏览了Webpack文档,了解它只会加载所需的脚本和组件,但所有脚本都可以通过“查看页面源代码”来查看。 如果我理解错了,请纠正我。

理想情况下,您可以跟踪用户是否login,或者通过在应用程序状态树的某处存储会话令牌来进行login。 您可以使用Redux之类的软件来pipe理应用程序中的状态。 如果用户未login并请求需要validation的路由,则首先需要确定需要redirect到哪条路由。 让我们假设你有2个路线/login/产品 。 您希望确保只有经过身份validation的用户才能查看/ products部分。 你完成这个的方式是通过检查你的状态的sessiontoken值来redirect到/ login,你可以把它作为道具传递给映射到/ productspath的Products组件。

使用类似react-router的东西

在产品组件中使用下面的东西

class Products extends Component{ componentWillUpdate(nextProps, nextState, nextContext) { let {sessiontoken}=nextProps; if (!sessiontoken) nextContext.router.push('/login'); } } Products.contextTypes = { router: React.PropTypes.object.isRequired } 

在上面的代码中,我们正在读取从更高阶的Container组件传递的作为道具的sessiontoken的值。 如果没有sessiontoken它将redirect到/login。 只要你的API返回一个HTTP 401遇到一个无效的sessiontoken这将完全适合你,你不需要担心人们能够查看页面源。