这更多是关于建筑/设计的问题,想知道我是否做错了。
我的React应用程序有几条路线,我保护其中一些路线免受未经授权的用户的侵害。
// app.js
...
<Router>
<Switch>
<Route exact path="/login" component={Login} />
<ProtectedRoute exact path="/" component={Home} />
<ProtectedRoute exact path="/about" component={About} />
</Switch>
</Router>
...
Login
组件具有一个form
,该username
和password
发送到Express后端,而Express后端依次回复200
或403
是否有比赛。根据收到的响应,我将React状态下的isAuthed
变量设置为true
或false
ProtectedRoute
只是另一个标准HOC,它检查isAuthed
变量是否设置为true
并相应地呈现。
我对此设计有一些疑问,
问题1。如果我收到200
作为响应,我也会在isAuthed
中将true
设置为localStorage
,这样用户就不会得到注销页面刷新。这是某种原始的jwt实现吗?我的Express后端应该发送令牌而不是普通的200
和403
吗?如果是这样,那么有效载荷中到底应该是什么?
第二季度。我的其他页面-Home
和About
是静态的,不对Express进行任何调用。一旦用户通过身份验证,我就会看到人们将每个请求标头中的jwt发送给Express。在我的情况下,对于Home
和About
页面,我什至不需要后端,那么如何在标题中发送jwt?在这里没有道理。
第三季度。我应该使用passport-jwt
或类似的库来处理我的login
路由还是继续使用我的 primitive 方法?
第四季度。我的前端和后端是两个单独的存储库。我知道,如果它们相同,那么Express应用程序将像使用ejs
和handlebars
来基于路由呈现HTML内容时一样 render 东西。 Express不处理任何前端渲染时该怎么办?
抱歉,如果这些问题太愚蠢了。谢谢!