提问者:小点点

如何为webapp创建安全的用户身份验证流?(VueJS|NodeJS|ExpressJS)


问题:

我想使用VueJS创建一个webapp,并使用NodeJS(ExperssJS和PostgreSQL)创建一个自定义后端。应该可以使用用户名和密码登录。成功登录后,用户可以访问ExpressJS服务器的安全endpoint。

现在我在想如何在成功登录后安全地验证HTTP请求。

我考虑做的事情:

使用JWT并在每个请求的身份验证标头中提供它。
当用户提供正确的登录数据时,服务器创建JWT并将其作为响应发送给客户端。客户端存储令牌并将其作为授权标头添加到每个HTTP请求中。因为传输是TLS(HTTPS)保护的,所以令牌在传输时不应该可见。为了提供无缝的用户体验,令牌必须保存在客户端,因此用户不必为每个请求进行身份验证。所以我的问题是:如何安全地保存JWT令牌以进一步HTTP请求身份验证?

可能的选项:

  • LocalSotrage-坏主意!(不太安全)
  • Cookie-更安全(但也不完美)

最后的想法:

是否有“绝对安全”或“最佳实践”方法来处理此类场景的身份验证?

P. S.我对这个领域很陌生,所以如果我写了一些愚蠢的东西,请原谅我:D我也知道有很多关于如何设置这样的教程,但是我想知道的是,哪种技术是最好的,最安全的。

提前感谢!


共2个答案

匿名用户

PassportJS还支持使用本地策略。你可能想看看。在这里

匿名用户

如果您是新手,那么最好使用已经构建的用户身份验证流程,例如Google登录、Disord登录等。

有一个名为Passport的著名库JS它使第三方登录系统集成变得轻而易举。