杂项
Redux 常见问答:杂项
有没有规模较大、真正的 Redux 项目?
有,很多!举几个例子:
此外还有很多类似项目!
进一步信息
文档
讨论
如何在 Redux 中实现身份认证?
身份认证对任何真实的应用都是必不可少的。实现身份认证时,你必须记住,这不会改变你组织应用的方式,应像实现其他功能一样实现身份认证。过程相对简单:
-
使用
createSlice创建authslice,保存当前用户和 token(或表示用户是否已登录的标记),并添加登录请求的 loading 和 error 字段。 -
使用 RTK Query mutation 或
createAsyncThunk发起登录请求,传入凭据并返回 token。在 slice 的extraReducers中处理 pending、fulfilled 和 rejected 状态(mutation 的生命周期 action 也可以通过addMatcher处理),保存 token 或错误信息。 -
发起其他请求时,从 store 中读取 token。使用 RTK Query 时,可以在
baseQuery的prepareHeaders回调中读取;该回调会收到getState。若组件外的其他代码也需要 token,请参阅如何在非组件文件中使用 Redux store?。 -
如果希望页面重新加载后仍保留会话,可以在登录成功时通过 listener middleware effect 持久化 token,并在创建 store 时将其读回
preloadedState。
进一步信息
文档
Articles
- Auth0:使用 JWT 进行身份验证(2016 年文章,使用
connect和手写 thunk;整体流程仍然适用)