javascript - 始终传递 http 身份验证 header javascript

标签 javascript node.js http authentication jwt

我正在尝试使用 Node.js 创建一个登录和身份验证系统。我打算这样做:

1) 用户通过 POST 方法使用表单发送他的凭据

2) 服务器根据数据库检查这些凭据

3) 如果凭证看起来正确,服务器会生成一个 jwt token 并将其返回给用户。

4) 从现在开始,用户总是将这个 token 放在他的 http 身份验证 header 中,或者至少在尝试访问受限页面时是这样

5) 当用户尝试访问受限页面时,服务器会提取 token 并在继续之前对其进行验证。

现在我有点卡住的是第 4 步。我希望仍然能够以典型的方式定义我的链接

 <a href="/restricted">Click here</a>

一种方式,但要使 token 实际传递到 http header 中。这可能吗?

所以这不是关于 api 调用,而是请求需要您使用 token 对自己进行身份验证的完整网页。所以我认为ajax在这里不合适。

最佳答案

基本上,您不能使用纯 HTML 设置 header 。为此,您需要使用 XHR 发送请求.另一方面,您可能需要考虑将查询标记 添加到您的href 链接中。

首先,使用 localStorage写入token

 localStorage.setItem('jsonwebtoken', 'AsdL6-4GffsdXCvS3j');

读取 token 并将其添加到您的 <a href> 中作为查询参数 ?token

 <a href="/restricted?token=${localStorage.getItem('jsonwebtoken')}">Click here</a>

然后修改您的服务器以接受tokenreq.query 一起发送的

 const token = req.query.token || req.headers['X-Access-Token'];

关于javascript - 始终传递 http 身份验证 header javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48084952/

相关文章:

javascript - AngularJS 在指令中将对象转换为字符串

javascript - 是否可以通过 JS 脚本接收 Amazon SNS 消息?

python - 获取 HTTP 请求的 TTFB(到第一个字节的时间)

http - 第二个FileServer提供html但不提供图像

javascript - "Working"脚本返回未捕获的 DOMException : Failed to execute 'insertBefore' on 'Node' : The new child element contains the parent

javascript - 如何查看数字是否为 "between"值?

javascript - 在可读事件监听器回调中读取时,Node 的 process.stdin 可读流记录 Null

node.js - Protractor E2E - 您如何管理数据库?

node.js - 在Google Assistant上播放特定时间的媒体对象

ruby-on-rails-3 - 导轨 : Testing OAuth API by posting multiparted messages with file attachment