【问题标题】:What is the correct way to send a jwt token from server side to client side?将 jwt 令牌从服务器端发送到客户端的正确方法是什么?
【发布时间】:2020-03-06 15:30:26
【问题描述】:

长篇大论,但我正在使用 Google 的 Youtube v3 Data API node.js 包来登录用户并查看播放列表等。目前,当用户使用 google 的 Oauth 重定向流程成功登录时,会调用路由服务器端,该路由服务器端会通过 url 查询参数传入代码。我能够解析出来,用我的 oauth2Client 生成一个令牌,然后创建一个签名的 jwt。现在我将用户重定向到一个 url,该 url 具有已签名的 jwt 作为 url 查询参数,然后解析出浏览器端并作为令牌存储在本地存储中,这是我第一次使用与 jwts 相关的任何东西并希望成为确定我以安全的方式做事。既然如此,我不完全确定如何将令牌服务器端发送到客户端是正确的方式,并且不太确定从哪里开始寻找。

【问题讨论】:

    标签: javascript node.js express google-api jwt-auth


    【解决方案1】:

    你可以像res.cookie(key, value)这样回复

    【讨论】:

    • res.cookie('token', token),然后调用 res.redirect(302, response.url) 似乎已经成功了
    【解决方案2】:

    有多种方法可以将令牌从服务器端传递到客户端

    1) 您可以在响应中传递令牌 2)您可以在响应标头中传递令牌

    【讨论】:

      【解决方案3】:

      这不是正确的方法。如果服务器正在响应 XHR 请求(来自 javascript),则服务器可以在响应正文中发送 JWT。如果服务器响应常规浏览器请求(GET 或 POST,但不由 javascript 处理),则将 JWT 放入 cookie 会更容易。

      【讨论】:

      • 好的,是的,在做了一些研究之后,看起来我基本上可以调用 res.cookie() 然后调用 res.redirect() ,它会简化事情。当我有时间时,我需要测试一下。
      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 2012-08-27
      • 2021-08-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      相关资源
      最近更新 更多