有没有办法使用PHP获取cURL请求的标题和正文?我发现这个选项:
curl_setopt($ch, CURLOPT_HEADER, true);
Run Code Online (Sandbox Code Playgroud)
将返回身体加上标题,但后来我需要解析它以获取身体.有没有办法以更有用(和更安全)的方式获得两者?
请注意,对于"单个请求",我的意思是避免在GET/POST之前发出HEAD请求.
是否仍然可以在Firebase 3中对令牌进行服务器端验证?
我们使用现有的身份验证系统(使用服务帐户)在运行Golang的服务器上生成自定义令牌(JWT).令牌在iOS客户端上使用
FIRAuth.auth()?.signInWithCustomToken(customToken)
Run Code Online (Sandbox Code Playgroud)
直到那里一切正常.但是当我们将客户端令牌传递给从以下位置检索的服务器时
FIRUser.getTokenWithCompletion({ token, error in ..})
Run Code Online (Sandbox Code Playgroud)
我们无法验证它.JWT令牌使用RS256签名,并且有一个我们无法识别的header.kid.服务帐户(用于签署自定义令牌)的公钥不验证客户端令牌.验证客户端令牌是否需要公钥?
我知道可以使用Java或Javascript中的"verifyIdToken"调用来验证客户端令牌,但我们希望能够使用标准JWT库在Golang中执行此操作.
这一切在Firebase 2中运行良好(使用HS256和Firebase秘密).
我有一个 PHP 后端和一个 Android 客户端。使用客户端,用户可以使用 Google 或 Facebook(均通过 Firebase)登录我的应用程序。我从 获取令牌FirebaseUser并将其发送到我的服务器。很简单,第一部分(标头)包含算法(RS256),第二部分(有效负载)包含所有用户相关数据。第三部分是前两部分的签名,用于在我的后端进行验证。问题是,我不知道该怎么做。更具体地说是什么。
我使用JWT.io检查我的令牌并尝试验证它,但没有成功。由于使用的算法是RS256,所以验证应该通过公钥来完成。但是什么公钥呢?我尝试使用我的应用程序的密钥库,尝试使用谷歌的证书,但它只是一直说它无效。我知道header的kid字段是签名密钥的 ID,我应该查找它,但我不知道在哪里。
Firebase 文档也没有帮助。有一个关于ID 令牌验证的指南,但这毫无用处,因为它是 Java / Node.JS 并且它仍然没有提及任何有关公钥的信息。
所以问题是:我从哪里获取公钥?