Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过Redux和Redux路由器处理用户身份验证_Javascript_Authentication_Cookies_React Router_Redux - Fatal编程技术网

Javascript 通过Redux和Redux路由器处理用户身份验证

Javascript 通过Redux和Redux路由器处理用户身份验证,javascript,authentication,cookies,react-router,redux,Javascript,Authentication,Cookies,React Router,Redux,我想知道人们通常如何使用redux处理用户身份验证?我使用的是Redux路由器,我有一个后端rails API,通过身份验证令牌处理用户身份验证 当用户提交登录表单时,api将返回用于后续请求的身份验证令牌。最初,我只是将该身份验证令牌存储在单个状态树中,每次我调度需要发出需要用户身份验证的API请求的操作时,我都使用(dispatch,getState)获取该身份验证令牌,然后将其包含在API请求中。So:getState().currentUser.auth_令牌 我不确定我是否以正确的方式

我想知道人们通常如何使用redux处理用户身份验证?我使用的是Redux路由器,我有一个后端rails API,通过身份验证令牌处理用户身份验证

当用户提交登录表单时,api将返回用于后续请求的身份验证令牌。最初,我只是将该身份验证令牌存储在单个状态树中,每次我调度需要发出需要用户身份验证的API请求的操作时,我都使用(dispatch,getState)获取该身份验证令牌,然后将其包含在API请求中。So:getState().currentUser.auth_令牌

我不确定我是否以正确的方式处理这个问题。是否有人使用localStorage和Redux进行用户身份验证来模拟服务器端会话?然后,每次发出API请求时,我都会检查本地存储中的auth令牌,如果它在那里,用户是否已登录

我最后做的是使用js cookies,并在用户进行身份验证时设置Cookie.set。我的根

任何提示或资源将不胜感激。到目前为止,我已经看过了真实世界的示例和React Router auth示例。React路由器示例似乎使用localStorage,这就是为什么我想知道它是否是正确的路径。我注意到还有一个Redux Localstorage npm包

我很想知道我是否无意中让自己受到某种身份验证攻击,或者是否有更好的方法来处理这个流程

我想知道人们通常如何使用redux处理用户身份验证

我在很多项目中都遇到过这种情况,最后我找到了一个解决方案,每当我需要在React/Redux应用程序中处理身份验证时,它不会让我感到汗流浃背

在我的项目中,我使用Node.js,但这不会改变任何事情,您可以使用任何服务器端技术

解决方案

我注意到,在单页应用程序(SPA)中,身份验证机制在客户端得到处理,就像您所说的,检查用户是否有令牌,使用服务器验证令牌,然后在此基础上“重定向”到相关路由,现在,无论您是使用React/Redux、Angular、Ember还是主干作为SPA,都不重要了,事情总会变得很糟糕

因此,我将身份验证(注册/登录)过程与主应用程序分离,因此当用户第一次启动我的应用程序时,服务器会检查
令牌
cookie,如果用户在请求中有该cookie,服务器会验证该令牌,如果该令牌有效,将客户端重定向到主应用程序页面(例如index.html),如果令牌无效或不存在,服务器将客户端重定向到登录/注册页面(login.html/signup.html)


login.html
页面不是主应用程序(index.html中的一个)的一部分,事实上,它有一个不同的代码库(代码更少,因此可以更快地加载页面),当用户尝试登录时,服务器验证login.html页面中的用户名和密码,如果它是有效的凭据,然后,服务器为该用户设置一个
令牌
cookie,并将其重定向到主应用程序页面(index.html),在那里可以加载应用程序代码,而无需处理身份验证,因为如果用户能够加载此页面(index.html)这意味着他必须拥有一个有效的令牌。

我刚刚完成了redux auth开源项目的工作。我正在将令牌存储到本地存储中。对于后端,我使用node,但我想你会明白的


是的,这是有道理的,因此,如果您想进行用户身份验证,您基本上创建了一个独立的“服务”。非常感谢您的输入我很感激您是否有git的链接,以获取您的登录/注册示例如果我确实希望我的应用程序了解用户的登录状态,请执行以下操作?即使用户未经身份验证,应用程序也应(全部或部分)正常工作。