我目前正在通过可通过公共地址访问的应用程序生成JWT令牌(实际上是JWS),如下所示:
令牌包含服务器生成的有效负载:
{
"uid": "7a7c5cdd-c08f-4241-b2c1-c97d291b06d0",
"issuedOn": 1536334767,
"publicKey": "http://api.privatedomain.lan:7777/public-key.pem"
}
服务器需要将URL放入有效负载中以进行验证。在此示例中,我的服务器实际上部署在以下地址的反向代理后面:
当前,我正在使用应用程序的主机URL,因此在生成有效负载时,所生成的URL是实际应用程序中的URL-https://api.publicdomain.com
-而不是可公开访问的URL-https://api.privatedomain.lan:7777/
。
反向代理处理json响应和其他所有内容的url重写,但是我不认为反向代理应处理JWT令牌中的URL重写。那么我的应用程序应该如何处理呢?
我看到的两个解决方案是:
https://api.publicdomain.com
我认为#2更好,但是我想知道解决该问题的通用方法是什么,以及是否错过了其他方法。