【发布时间】:2017-11-17 02:21:50
【问题描述】:
我的 JWT 应该是 HTTPOnly 吗?我目前是这样创建它们的:
const token = jwt.sign(user, config.secret, {
expiresIn: 604800 // 1 week
});
new Cookies(req,res).set('access_token',token,{
httpOnly: false,
secure: false // for your production environment
});
然后使用 Universal-cookie 让它们像这样:
const cookies = new Cookies();
var token = cookies.get('access_token');
这安全吗?如果没有,或者有其他理由不这样做,我应该怎么做?如果 JWT cookie 仅为 http,则 get 请求返回为未定义。
谢谢,埃德。
【问题讨论】:
-
我通常在 JSON 响应中返回令牌。然后客户端应该使用标头在每个请求上发送令牌。这种方法使我能够使用相同的 API 有效地与 web 应用程序以及本机应用程序进行通信;)
-
谢谢,您不会知道有任何文章/教程可以告诉我如何做到这一点吗?谢谢;)
-
谁在验证访问令牌?如果它支持您,请使用 httpOnly:false 和 github.com/kjur/jsrsasign/wiki/Tutorial-for-JWS-verification。如果这不是您的交易部分并且令牌由后端验证,请使用 httpOnly:true。在这两种情况下都使用secure:true。