【问题标题】:Best way to store JSON Web Token into Cookie?将 JSON Web Token 存储到 Cookie 中的最佳方法是什么?
【发布时间】:2017-01-03 11:38:20
【问题描述】:

我有一个名为 login 的 POST 请求,它返回一个 JSON 响应,其中 JSON 响应是令牌:“23iu728427224 ....”以及用户名:“....”

我正在查看 cookie-parser,但文档很糟糕,这里有什么建议吗?

如何将令牌存储为 HTTP cookie? 如何从 cookie 中检索特定值? (需要 Token 的未来请求)

现在在我的登录请求中(我正在使用 request-promise)

去吧

请求(选项) .then(函数(响应){ res.cookie('auth', 响应);

在我的控制台中,我输入 document.cookie,我得到这个作为我的响应,“auth=j%3A%7B%22success%22%3Atrue%2C%22username%22%3A%22mark%22%2C%22message% 22%3A%22Here%20is%20your%20token%22%2C%22token%22%3A%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9。 MjMiLCJlbWFpbCI6Im1hcmtAZ21haWwuY29tIiwidGVhbSI6InZhbG9yIiwiX2lkIjoiNTdiZDQ5Njc1MjIxNjgwZjAwNjFhNzU3In0sIl9wcmVzIjp7IiRfX29yaWdpbmFsX3NhdmUiOltudWxsLG51bGxdLCIkX19vcmlnaW5hbF92YWxpZGF0ZSI6W251bGxdLCIkX19vcmlnaW5hbF9yZW1vdmUiOltudWxsXX0sIl9wb3N0cyI6eyIkX19vcmlnaW5hbF9zYXZlIjpbXSwiJF9fb3JpZ2luYWxfdmFsaWRhdGUiOltdLCIkX19vcmlnaW5hbF9yZW1vdmUiOltdfSwiaWF0IjoxNDcyMjM0NjgwLCJleHAiOjE0NzIzMjEwODB9.lubhT8AAcnwy2lC4idcYeCsm2O7bTod-ob9i1FNUGTk%22%7D“ P>

这是否意味着我做对了?如果在另一张纸条上是这样,那么我如何获得该令牌值?我看到 cookie 不存储空格,所以这会自动解析吗?

【问题讨论】:

    标签: javascript node.js http express cookies


    【解决方案1】:

    你会想要这样的东西来保存令牌:

    res.cookie('auth', response.token);
    

    这应该将 JWT 本身保存到身份验证 cookie,而不是完整的响应对象。

    【讨论】:

    • 啊,现在 cookie 是个好建议,只是“auth=sdfdsffssdfs”。你知道我怎样才能在另一个 js 文件中访问这个 auth cookie 吗?我被困在这里了。
    • 您需要使用原生 JavaScript 访问 cookie。看看这个教程:quirksmode.org/js/cookies.html 还有第三方库,这更容易,但你当然不需要它们(github.com/js-cookie/js-cookie)。
    • 嗯,我不想担心必须为半可兰等解码 cookie,是否有某种中间件可以让我获得 justCookie('auth') ?
    • 如果您不想手动操作,请查看我链接的库。这将很简单:Cookies.get('auth');获取 JWT。如果需要,您可以使用 Passport-js 进行身份验证中间件。看这里:blog.slatepeak.com/…
    • 啊,谢谢你的帮助。我正在使用 jscookie npm 包,但是它不起作用是因为我存储我的 cookie 错误吗?当我执行 document.cookie 时,我得到 auth="dfsd......" 但是当我尝试执行 jscookie.get('auth') 时,我的页面崩溃了:l
    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 2011-11-11
    • 2011-02-27
    • 1970-01-01
    • 2013-05-23
    • 2021-01-31
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多