Has*_*ast 8 php validation jwt google-oauth
我正在PHP项目中创建自己的google oauth实现.一切正常,除非我JWT
在访问令牌请求后尝试验证收到(https://accounts.google.com/o/oauth2/token).
对于JWT解码我使用的是firebase/php-jwt类.
它解码完美,但是如果我打开$verify
选项(decode()
方法3-rd arg),我得到:Signature verification failed
异常抛出.
我的猜测是,如果我将错误的密钥传递给decode()
方法.hash_hmac()
当签名生成完成后,它稍后用于函数.
所以我的问题是:我应该将什么密钥传递给Google OAuth JWT上下文进行签名验证?
从https://developers.google.com/accounts/docs/OAuth2Login#validatinganidtoken推荐的方法:
"我们建议您从https://www.googleapis.com/oauth2/v1/certs检索Google的公钥,并在本地执行验证.
由于Google不经常更改其公钥(大约每天一次),因此您可以缓存它们,并且在绝大多数情况下,比使用TokenInfo端点更有效地执行本地验证.这需要检索和解析证书,并进行适当的加密调用以检查签名.幸运的是,有各种语言的调试良好的库可以实现这一目标."
归档时间: |
|
查看次数: |
7237 次 |
最近记录: |