我正在学习使用json-web-tokens。
我得到了关键点,我们通过在请求标头中获取它来在服务器端对其进行身份验证。
下面提到的行解析请求并验证标头。
但我们如何首先在请求标头中发送它。
在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类确保永远不会提供无效数据。如果令牌被篡改,它将无法使用。非常简单的东西! **我确实理解这个非常简单的东西,但是,不明白缺少的步骤。 **
答案 0 :(得分:0)
我的解决方案是JavaScript,但现在是。也许会有所帮助?
1.但我们如何在首位发送请求标题
fetch(`/secret/${uid}`, {
method: "get",
headers: {
authorization: `Bearer ${getToken()}`
}
});
2.然后在客户端,我们以这种方式获得令牌"
如果令牌保存在本地存储中,我们就可以得到它。
function getToken() {
return localStorage.getItem("jwt-token");
}