若用户并没有登录,如何对主页提要和登录页面使用相同的URL



所以我正在开发一个PERN堆栈应用程序(postgresql、expressjs、reactjs、nodejs(。

我在想。。。脸书或instagram是如何编码的,如果我登录了,网址:www.instagram.com显示我的订阅源,但如果我没有登录,网址:http://www.instagramcom显示登录页面(不将网址更改为instagram.com/login或类似的内容…(

所以我的问题是,他们是如何做到这一点的?

我尝试过使用react路由器寻找解决方案,但找不到任何:/。。。

我认为这可以通过更改应用程序的状态来完成,但这不是我想在应用程序上解决路由问题的方式。。(这是一种社交媒体应用程序(

作为一个通用的逻辑流,我建议如下:

  1. 定义主路由,即应用程序基本url(/(,使其成为授权和非授权页面的通用路由。这也应该是react路由器中的根路由组件
  2. 第一步检查主路由中的用户会话/身份验证:
    • 如果用户已通过身份验证,则呈现授权组件和子路由,例如:/profile、/account等
    • 否则,呈现公共组件,通常是登录/注册页面
  3. 注销时,将用户重定向回主路由(/(

这是一个非常高级的流,无论使用什么堆栈,它通常都是相同的。

最新更新