我正在开发AngularJS上的SPA应用程序,它接收来自PHP上的REST Api的数据。我需要为它实施JWT授权。我有一个简单的PHP JWT库,可以对JWT令牌进行编码和解码,但不知道如何验证JWT令牌。有人可以向我解释一下PHP端JWT验证的步骤吗?单页应用程序授权
Q
单页应用程序授权
0
A
回答
0
您需要将头先解码,这将包含用于签署类似的算法(这是JWT的第一部分,你用句拆分后“”):
{
"alg": "HS256",
"cty": "JWT"
}
这意味着,HMAC使用SHA-256来创建该令牌的签名。 HMAC是通过将秘密与消息连接并计算散列而生成的MAC,在这种情况下散列函数是SHA-256。既然HASH在计算输入时是不可行的(或者至少在硬件上非常昂贵),即使知道什么是消息也不能猜出密钥。但考虑到消息(JWT的第二部分)和密钥,您可以再次计算哈希值并验证是否等于签名(JWT的第三部分)。在这个答案中有更多关于HMAC的信息1。
不言而喻,虽然这是一个非常常见的JWT算法,但它并不是唯一的算法,因此也是表示算法的头。例如,Google JWT使用不对称秘密签名,即他们发布可用于验证签名但不能用于签名的密钥的公共部分。该算法是RS256(又名RSA SHA-256)。
你会发现这个网站非常有用的调试2。您还可以在这里看到不同的算法和多种语言的不同实现的集合。
Firebase家伙有一个PHP实现,可以签署和验证JWT 3。
相关问题
- 1. 授权挂在应用程序授权页面
- 2. 授权android应用程序
- 3. Web应用程序授权
- 4. iCloud授权应用程序?
- 5. 从应用程序授权
- 6. 安全验证/在一个单页的应用程序授权
- 7. 单页应用ASP.NET MVC 4授权
- 8. GitHub OAuth授权请求不会重定向到授权应用程序页面
- 9. 用PHP SDK应用程序授权
- 10. 在一页中授权用户的操作javascript应用程序
- 11. Facebook的页面应用程序 - 授权用户
- 12. Facebook应用程序授权回调URL
- 13. Facebook API授权(桌面应用程序)
- 14. 取消授权从Facebook应用程序
- 15. QBO,QBD,API和应用程序授权
- 16. 授予应用程序的root权限
- 17. Android授权应用程序无效?
- 18. .NET应用程序的机器授权
- 19. Android应用程序授权问题
- 20. 取消授权twitter OAuth应用程序
- 21. 部署Rails应用程序与授权
- 22. OS X应用程序授权
- 23. 授予iPhone应用程序根权限
- 24. 授权我的rails 3应用程序
- 25. 应用程序逻辑与授权
- 26. Android应用程序通过Google+授权
- 27. 授权Facebook标签应用程序
- 28. 安卓应用程序授权
- 29. 设置授权Java EE应用程序
- 30. 其他应用程序和授权