我是一个初学者,我已经实现了基于令牌的身份验证的第一个版本和逻辑,我不确定它是否足够安全以用于生产。
我有一个使用Vue.js 2制作的静态SPA,而服务器端是使用ASP.NET VB.net Web窗体应用程序制作的
由于缺乏对特定概念的了解,我没有使用任何特殊的.NET软件包
我使用的逻辑如下:
我要求客户提供用户名和密码,并验证他是否在我们的数据库中以进行验证
如果未验证客户端,则在前端处理错误...如果未验证,则生成一个令牌,该令牌是数据库中某些值(例如用户名+密码)的连接的哈希(秘密密钥) + login_created_at +当前日期时间。
我以JSON格式(易于解析)的字符串形式发送此令牌,以及客户端ID(来自数据库),令牌的到期日期和DateTime(之前使用在散列中)生成令牌的地方
在前端,我将此字符串(令牌对象)存储在本地存储中,并检索它,并使用自定义标头将其发送给服务器以用于随后的每个请求
在身份验证部分(对于客户端后续请求),我验证客户端ID是否有效,然后使用它从数据库中检索与以前相同的值,并尝试重新生成令牌,该令牌应等于接收到的令牌令牌
因此,我从那里选择是否允许访问所请求的Web服务
此逻辑是否足够安全?
可以在本地存储上修改此令牌吗?
我注意到,如果该对象被拦截,复制或读取,任何人都可以以客户身份登录。我该如何解决?
我注意到,如果将令牌的到期日期更改为以后的日期,则客户端或黑客可以保持连接状态,令牌将永不过期。
是否需要使用.NET软件包,否则将无法解决问题?如果是,那么这些软件包是什么?