我可以在使用Next时将jwt令牌存储在本地存储中吗?js?

zujrkrfu  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(188)

我们希望使用Next。js,但我们将主要使用客户端渲染来获取数据。该API是一个外部API将建立,我们将调用。只有主页将使用服务器端渲染。核心API需要登录才能访问 Jmeter 板, Jmeter 板内容是特定于用户的。因此,接下来我们要使用客户端数据获取。JWT在外部API中用于给予用户的授权,用户的角色沿着其他用户的详细信息存储在JWT访问令牌中。我们是Nextjs的新手,想知道如何使用它。我们需要每个用户发送他们的访问令牌作为他们的请求的一部分时,使API请求,而在 Jmeter 板内。我们是否可以将此访问令牌存储在他们的本地存储中,并在发出API请求时将其传递给他们的头承载?

l5tcr1uw

l5tcr1uw1#

你可以的在发出登录请求并且API返回JWT之后,您可以将localstorage调用到set the item。然后,当发出客户端请求时,您将调用localstorage到get the item,然后将其传递到请求的头部。请记住,您将需要管理到期。
另一种方法是在登录时,让API返回一个setting a cookie的header,该header将JWT存储在cookie中。然后,当发出请求时(在同一主机上被授予),如果您设置了头Access-Control-Allow-Credentials,它将自动沿着cookie
就我个人而言,我会选择Cookie,因为如果将它们设置为仅限HTTP,则会出现increase security。它还附带了一个过期时间的好处,这样cookie将在它不再有效时清除,用户可以关闭页面,重新打开并仍然登录。
希望这能帮上忙。

bvk5enib

bvk5enib2#

是的,你可以,但不要在本地存储中存储令牌!!
Auth 0建议将令牌存储在浏览器内存中作为最安全的选项。
为了实现这一点:使用web worker在需要时将令牌发送到代码,或者仅将令牌存储在内存中。例如,当您收到令牌时,将其放入应用程序可访问的变量中。
通过这种方式,您可以防止自己受到Cross Site Scripting (XSS)的攻击,因为最终用户下载的任何脚本都可以访问本地存储。
跨站脚本(XSS)攻击是一种注入,其中注入恶意脚本。..]
最后,我可以建议简单地将令牌存储在http-onlycookie中:https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie最简单

相关问题