所以我正在开发一个PERN堆栈应用程序(postgresql、expressjs、reactjs、nodejs(。
我在想。。。脸书或instagram是如何编码的,如果我登录了,网址:www.instagram.com显示我的订阅源,但如果我没有登录,网址:http://www.instagramcom显示登录页面(不将网址更改为instagram.com/login或类似的内容…(
所以我的问题是,他们是如何做到这一点的?
我尝试过使用react路由器寻找解决方案,但找不到任何:/。。。
我认为这可以通过更改应用程序的状态来完成,但这不是我想在应用程序上解决路由问题的方式。。(这是一种社交媒体应用程序(
作为一个通用的逻辑流,我建议如下:
- 定义主路由,即应用程序基本url(/(,使其成为授权和非授权页面的通用路由。这也应该是react路由器中的根路由组件
- 第一步检查主路由中的用户会话/身份验证:
- 如果用户已通过身份验证,则呈现授权组件和子路由,例如:/profile、/account等
- 否则,呈现公共组件,通常是登录/注册页面
- 注销时,将用户重定向回主路由(/(
这是一个非常高级的流,无论使用什么堆栈,它通常都是相同的。