首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用JWS分离验证HTTP消息

如何用JWS分离验证HTTP消息
EN

Stack Overflow用户
提问于 2021-09-18 06:07:12
回答 1查看 374关注 0票数 1

我想知道如何使用分离的JWS验证HTTP消息。目前,我正在接收报头中的x-sign请求,如下所示

代码语言:javascript
复制
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..UXwjHxU3tFlrzPMupG04zROiEcHFQpCg3l7J4Axr1fE

我需要在我的末尾验证这个请求是否正确使用我的秘密密钥。

例: 12345678

我正在使用firebase/jwt,并尝试了下面的代码

代码语言:javascript
复制
$hed = getallheaders();
$recievedJwt = $hed["X-Sign-Jws"];
$decoded = JWT::decode($recievedJwt, $secret_key, array('JWT','HS256'));```

但我没有得到任何结果。

我在网上搜索,找到了下面提到的那篇文章:

与JWS分离的验证HTTP消息: a)获取HTTP报头“x-符号- JWS”,b)获取BASE64URL HTTP c)将生成字符串b)放入有效负载部分( d)验证JWS

但我对如何获得Base64URL HTTP主体感到困惑

任何帮助都将是非常感谢的,因为只有少数几篇关于这个主题的文章。

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 13:59:45

JWS格式是base64url(header).base64url(payload).base64url(signature),注意三个组件之间的点分隔符。

分离的JWS仍然包含3个组件,但是有效负载被移除并提供在其他地方,通常有效负载是在HTTP主体中提供的。

要验证分离的JWS,您需要向分离的JWS添加base64url编码的有效负载。有效负载可从HTTP主体中获得。

例如;

代码语言:javascript
复制
x-sign-jws = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..UXwjHxU3tFlrzPMupG04zROiEcHFQpCg3l7J4Axr1fE

//split x-sign-jws into array using delimiter .
    
x-sign-jws-attached = x-sign-jws-split[0] + '.' + base64Url(HTTPRequest.Body) + '.' + x-sign-jws-split[1]

现在您可以验证x-sign-jws-attached,如下所示;

代码语言:javascript
复制
$decoded = JWT::decode($x-sign-jws-attached, $secret_key, array('JWT','HS256'));```
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69232042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档