如果用户未经过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这将完全适合你,你不需要担心人们能够查看页面源。
- Firebase 3 node.js服务器authentication是否会改变?
- 带有Connect基本身份validation的Expressj不会设置请求用户
- PHP – 计算正确的HMAC签名为nodejs脚本
- 在Express应用程序中validationSocket.IO客户端
- 如何在Node.js中重新使用由Play Framework 2.2设置的签名cookie?
- NodeJS Passport:通过两种策略multilogin – 序列化问题
- iOS&node.js:如何validation传入的访问令牌?
- 无法使用GitHub个人访问令牌validationFirebase(以前工作)
- 快速请求后处理