我想知道人们通常如何使用redux处理用户身份验证?我正在使用Redux路由器,我有一个后端rails API,通过身份验证令牌处理用户身份验证.
当用户提交登录表单时,api将返回auth令牌以用于后续请求.最初我只是将auth令牌存储在单个状态树中,每次我调度需要进行需要用户身份验证的API请求的操作时,我都使用(dispatch,getState)获取该身份验证令牌,然后将其包含在API中请求.所以:getState().currentUser.auth_token.
我不确定我是否以正确的方式接近这个.有些人使用localStorage和Redux进行用户身份验证来模拟服务器端会话吗?然后,每次发出API请求时,我只需检查本地存储以获取身份验证令牌,如果在那里用户已登录?
我最终做的是使用js-cookies并在用户进行身份验证时执行Cookie.set.<App />然后,我的根组件有一个componentDidMount,它调度initAuth()操作,该操作检查当前Cookie以查看它是否仍然有效.如果是这样,它会保持用户登录,否则会将身份验证减速器重置为其defaultState.
以下是使用用户身份验证的repo链接:https://github.com/SpencerCDixon/Kira/blob/master/client/actions/AuthActions.js
任何提示或资源将不胜感激.到目前为止,我已经查看了真实世界的示例和React Router auth示例.React Router示例似乎使用localStorage,这就是为什么我很好奇它是否是正确的路径.我注意到还有一个Redux Localstorage npm包.
很想知道我是否因为意外地打开某种身份验证攻击或者有更好的方法来处理这个流程!