如何将json Web令牌的标头发送到服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将json Web令牌的标头发送到服务器相关的知识,希望对你有一定的参考价值。

我正在学习使用json-web-tokens。

我得到了关键点,我们通过在请求标头中获取它来在服务器端对其进行身份验证。

下面提到的行解析请求并验证标头。

enter image description here

但是我们如何首先在请求标头中发送它。

在MDN上,this链接建议使用像httpChannel这样的东西......但这听起来非常罕见。这样做的常见方法是什么?

关于我不理解的更多信息

摘录另一个(this)教程:

JWT php类使这很容易做到。例如,要在客户端成功登录后创建令牌,可以使用以下代码:

$token = array();
$token['id'] = $id;
echo JWT::encode($token, 'secret_server_key');

(现在它根本没有提到以下缺失的步骤)

[然后在客户端,我们以这种方式获得令牌..

[................................... //我需要这个在本教程中没有提到的

[然后我们以这种方式将此令牌发送到服务器[.................................. //这也没有提到..

(教程直接继续以下行..上面的行丢失了。)

然后在以后的API调用中,可以通过以下代码检索和验证令牌:

$token = JWT::decode($_POST['token'], 'secret_server_key');
echo $token->id;

如果令牌已被篡改,则$ token将为空,将不会有可用的ID。 JWT类确保永远不会提供无效数据。如果令牌被篡改,它将无法使用。非常简单的东西! **我确实理解这个非常简单的东西,但是,不明白缺少的步骤。 **

答案

我的解决方案是在javascript中,但在这里。也许会有所帮助?

1.但是我们如何首先在请求标头中发送它

fetch(`/secret/${uid}`, {
    method: "get",
    headers: {
      authorization: `Bearer ${getToken()}`
    }
  });

然后在客户端,我们以这种方式获得令牌“

如果令牌保存在本地存储中,我们就可以得到它。

function getToken() {
  return localStorage.getItem("jwt-token");
}

以上是关于如何将json Web令牌的标头发送到服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用中继将自定义标头发送到graphql服务器?

如何将带有数据的http标头发送到rest Api codeigniter?

将标头发送到客户端后无法设置标头-请帮助我在代码中理解这一点

如何向每个标头添加 json Web 令牌?

将标头发送到客户端后无法设置标头/服务器在页面刷新时崩溃

如何解决“将标头发送到客户端后无法设置标头”