首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP令牌验证

PHP令牌验证
EN

Stack Overflow用户
提问于 2016-11-08 23:56:08
回答 1查看 1.3K关注 0票数 2

我正试图从我的客户端向我的服务器发送一个Auth0 JWT,并对令牌进行验证。我通过PHP将从token_id身份验证返回的auth0发送到我的服务器,并且可以在AuthHttp中不出现任何问题。

简短而简单:

  • 角2 Auth0 JWT被发送到PHP。
  • 如何验证签名是否正确?

我有秘密ID,我有带有编码和解码的JWT助手类。

如何检查发送过来的JWT的头和正文=签名,如果这甚至是正确的方法。

编辑:

我传递我的记号,这是

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvbG93aWUuZXUuYXV0aDAuY29tXC8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwNDY4ODk4NjgxNzEwNjQ3Mjc5MCIsImF1ZCI6IlYwWWVaREliYmVGdEJ4Z3F2UkNzVkFjWWxscXpaZGlNIiwiZXhwIjoxNDc4NzMxNjIzLCJpYXQiOjE0Nzg2OTU2MjN9._uyKrxJ0lPR-tEPjOFiI5ygeiM689gqURcIfG4sWkWc

,然后我获取这个令牌的主体,并将它变成一个数组。

数组( iss => https://lowie.eu.auth0.com/ Sub=>google-OAuth2 x 1046889868176472790 aud => V0YeZDIbbeFtBxgqvRCsVAcYllqzZdiM exp => 1478731623 iat => 1478695623 )

一旦我有了数组,这就是我的有效载荷,对吗?

//下面是被验证为正确https://gyazo.com/93777863d988d8c6ef0fc4ea50755949的令牌的图像

那么,为什么下面的代码不给我相同的令牌呢?

代码语言:javascript
复制
$jwt = JWT::encode($bodyArray, "SuperSecureSecretSecret");

但我还是收到了这个

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2xvd2llLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwNDY4ODk4NjgxNzEwNjQ3Mjc5MCIsImF1ZCI6IlYwWWVaREliYmVGdEJ4Z3F2UkNzVkFjWWxscXpaZGlNIiwiZXhwIjoxNDc4NzMxNjIzLCJpYXQiOjE0Nzg2OTU2MjN9.6lEg_0h0zytQZVBqDe-ZIS5PoSkFAJhWtRYSgaDCesY

EN

回答 1

Stack Overflow用户

发布于 2016-11-09 09:07:44

您应该使用一个现有的库,该库支持您使用的JWT签名类型。有关PHP可用选项的快速参考,请查看jwt.io中的库部分。

在大多数情况下,使用现有的库是首选的,但是,对库的质量做一些评估也很重要。

有关JWT签名验证,请阅读本文(JSON令牌库中的关键漏洞),以确保您对库的使用不会导致可能的漏洞。

更新:

令牌是不同的,因为它们使用不同的密钥签名,而有效负载也不同;iss在一个是"https://lowie.eu.auth0.com/",另一个是"https:\/\/lowie.eu.auth0.com\/"。您可以通过使用Base64解码器解码有效负载来检查这一点,并查看原始输出。

更重要的是,您不应该创建任何令牌,只需验证它们是否有效,并且是由您将实际身份验证过程委托给的可信颁发者发出的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40498423

复制
相关文章

相似问题

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