我是一名后端开发人员,必须在当前项目中创建前端!我正在使用reactJs,我知道对于授权用户,我应该从后端API获得api_token
,然后在下一个请求中使用api_token
!所以我应该存储api_token
(实际上是在客户端浏览器的某个地方(!但是我应该把它存放在哪里以确保安全?
我想到的第一个答案是"本地存储"!但我读过这篇文章:不要在本地存储中存储令牌
我已经搜索并找到了@auth0/auth0-spa-js,但我不知道我能不能信任这个包(以及类似的包(?
这就是我找到的路!但是,像这样存储敏感数据的正确方法是什么?
Web上的Auth流应该是
- 将用户/密码详细信息发送到服务器
- 服务器验证并返回加密的令牌,其中包含一些详细信息,并存储为HTTP Cookie
- 设置受保护的端点,以便只有具有令牌的用户才能访问它们
安全性:HTTP Cookie仅意味着浏览器不能在客户端访问,只能在服务器上访问。但有些人可以简单地将其复制粘贴到他们的cookie中,如果你担心或处理敏感内容,你需要实施额外的安全措施,比如上面提到的措施。一般来说,设备管理不是一个网络问题,但您也可以对令牌进行一些验证,例如使令牌在5分钟内过期,或在会话结束时过期,设备Id、浏览器Id、IP地址,向他们发送一封新的未知IP已登录的电子邮件,等等。
永远不要在前端代码中存储私有令牌
您应该创建一个只能从特定url(应用程序的url(访问的服务器。此服务器可以拥有进行调用所需的秘密令牌。该服务器可以将请求转发到您将使用的需要私有令牌的服务。