【发布时间】:2017-03-22 18:12:45
【问题描述】:
我正在尝试将 Auth0 JWT 从我的客户端发送到我的服务器并验证令牌。我通过 AuthHttp 标头将 auth0 身份验证返回的 token_id 发送到我的服务器,我可以在 PHP 中毫无问题地获取它。
简短:
- Angular 2 Auth0 JWT 被发送到 PHP 服务器。
- 如何验证签名是否正确?
我有 Secret ID,我有带有编码和解码功能的 JWT 助手类。
如果这是正确的方法,我如何检查标头和正文 = 发送过来的 JWT 的签名。
编辑:
我传入我的令牌
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvbG93aWUuZXUuYXV0aDAuY29tXC8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwNDY4ODk4NjgxNzEwNjQ3Mjc5MCIsImF1ZCI6IlYwWWVaREliYmVGdEJ4Z3F2UkNzVkFjWWxscXpaZGlNIiwiZXhwIjoxNDc4NzMxNjIzLCJpYXQiOjE0Nzg2OTU2MjN9._uyKrxJ0lPR-tEPjOFiI5ygeiM689gqURcIfG4sWkWc P>
然后我在其中获取这个令牌的主体并将其放入一个数组中
Array ( [iss] => https://lowie.eu.auth0.com/ [sub] => google-oauth2|104688986817106472790 [aud] => V0YeZDIbbeFtBxgqvRCsVAcYllqzZdiM [exp] => 1478731623 [iat] => 1478695623 )
一旦我有了数组,这就是我的有效载荷吧?
// 这是一个被验证为正确的令牌的图像 https://gyazo.com/93777863d988d8c6ef0fc4ea50755949
那么为什么下面的代码没有给我相同的令牌?
$jwt = JWT::encode($bodyArray, "SuperSecureSecretSecret");
但我收到了这个回复
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2xvd2llLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwNDY4ODk4NjgxNzEwNjQ3Mjc5MCIsImF1ZCI6IlYwWWVaREliYmVGdEJ4Z3F2UkNzVkFjWWxscXpaZGlNIiwiZXhwIjoxNDc4NzMxNjIzLCJpYXQiOjE0Nzg2OTU2MjN9.6lEg_0h0zytQZVBqDe-ZIS5PoSkFAJhWtRYSgaDCesY P>
【问题讨论】: