gpt4 book ai didi

node.js - 登录成功后如何发送JWT到前端服务器存储到localStorage?

转载 作者:行者123 更新时间:2023-12-02 01:51:41 25 4
gpt4 key购买 nike

在我当前的应用程序中,用户使用 google 登录后( Passport 策略),我在服务器上生成了一个 JWT token ,然后我不知道如何将其发回,同时将用户重定向到前端网站。

在搜索时我读到前端应该获取 token ,但这是否意味着我必须缓存 JWT 直到它被请求并使用 key 设置一些 cookie 以在缓存中获取 token ?我尝试这样做,但感觉就像是在重新发明轮子,让我自己暴露在一些安全漏洞面前。

最佳答案

不幸的是,接受的答案似乎没有回答这个问题。这是从前端(例如 Web 应用程序)发送到后端(API 或类似应用程序)的一个很好的答案。

但我知道您想将 token 从后端发送到前端。在这种情况下,有几种方法可以传输该 token 。它们被 OAuth2 框架协议(protocol)广泛使用。

使用回调 Uri

这是最常用的技术之一。后端服务器使用查询字符串中的 token 生成重定向响应(状态代码 303)。举个例子

HTTP/1.1 303 See Other
Location: http://frontend.org/?token=xxxxxxxxxxx

你也可以使用片段属性

HTTP/1.1 303 See Other
Location: http://frontend.org/#token=xxxxxxxxxxx

代码交换

另一种非常相似的方法是生成一个唯一且一次性使用的代码,该代码将使用其他请求交换 token 。

HTTP/1.1 303 See Other
Location: http://frontend.org/?code=xxxxxxxxxxx

在前端,获取代码并向后端请求 token (使用fetch)

POST /give/me/the/token HTTP/1.1
Host: backend.com
Content-Type: application/json

{
"code": "xxxxxxx"
}

可能的威胁

您必须考虑多种威胁。它们在 RFC6819 中描述。 ,但存在缓解措施。

  • CSRF 攻击:应使用 state 参数 ( section 3.6 )
  • Open Redirector attacke:您不应允许客户端决定重定向 URI (section 4.1.5)

另外,你应该看看 RFC7636 .本规范定义了一种通过使用在客户端生成的随 secret 码来保护 code 不被盗的方法。

关于node.js - 登录成功后如何发送JWT到前端服务器存储到localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70210620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com