mik*_*ssy 8 jwt firebase firebase-authentication
我正在为我的网络/移动应用程序使用 firebase,现在我也想使用一个后端 API。API 需要 JWT 令牌来验证请求并进行设置,我需要指定用于加密/解密令牌的 JWT Secret。
在 firebase 中,我相信我使用 const token = wait firebase.auth().currentUser.getIdToken(); 检索令牌 这就是我传递给 API 的内容。
但是,我还没有弄清楚在哪里可以配置 JWT-secret?我已经尝试了 firebase 控制台中显示的 API 密钥,我还尝试了在我的控制台https://console.developers.google.com上找到的服务器/客户端密钥。
但是,无论如何,当我尝试向 API 调用发出请求时,我都会收到 JWSInvalidSignature。
有人让这个工作吗?我在哪里可以从 firebase 获取 JWT 秘密以在 API 后端进行配置?提前致谢。
详细信息如下: 1. 我正在使用名为 postGrest 的服务,它会在 postgres DB 之上自动创建一个 Web API。为了对请求进行身份验证,您可以通过指定名为“角色”的自定义声明来配置服务,并且还需要指定 JWT 秘密,以便它可以解码令牌。
这是我对 API 的简单调用:
const fetchdata = async () => {
const token = await firebase.auth().currentUser.getIdToken();
let axiosConfig = {
headers: {
'Authorization': 'Bearer' + token
}
}
const data = await axios.get(`http://localhost:8080/users`,
axiosConfig);
}
Run Code Online (Sandbox Code Playgroud)
另请注意,我可以使用以下代码在 bash 命令行中模拟这一点:请注意,我从上面的 getIdToken() 获取令牌。
export TOKEN="eyJhbGciOiJSUzI1NiIsImtpZCI6ImQ2YzM5Mzc4YWVmYzA2YzQyYTJlODI1OTA0ZWNlZDMwODg2YTk5MjIiLCJ0eXAiOiJKV1QifQ.eyJ1c2VyaWQiOiI1NSIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS9wb3N0Z3Jlc3QtYjRjOGMiLCJhdWQiOiJwb3N0Z3Jlc3QtYjRjOGMiLCJhdXRoX3RpbWUiOjE1NzExNTIyMjQsInVzZXJfaWQiOiJNMXZwQ3A2ZjlsaFdCblRleHh1TjlEdXIzUXAyIiwic3ViIjoiTTF2cENwNmY5bGhXQm5UZXh4dU45RHVyM1FwMiIsImlhdCI6MTU3MTE1OTQ0NSwiZXhwIjoxNTcxMTYzMDQ1LCJlbWFpbCI6InNwb25nZWJvYkBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsic3BvbmdlYm9iQGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.nKuovs0Gx_ZKp17dI3kfz6GQofIMEOTA8RqTluwEs-5r-oTbKgpG33uS7fs7txVxvWIb_3fbN3idzfDHZevprMkagbHOd73CxTFBM7pr1bD2OKSK9ZPYfSt9OhvgJL51vBN3voLcNAb5iWVVl2XMqkcXeDoBi8IOKeZr27_DsRx48GSi7HieHWscF1lujSEr2C9tdAek3YyNnr3IcGI8cTSPHPaIbYl-8CaHQO2fUiGHEAaD7sqHxp3otJio56zOoNAy44P_nwORlMFZC0Rm8SaATpbmIkgbGYWHZHty70lmlYGVHTuM_hr2s7z2YhAjuacvBMgusZpyoVnoe3FQeA"
curl http://localhost:8080/contacts -H "Authorization: Bearer $TOKEN"
Run Code Online (Sandbox Code Playgroud)
返回的是:{"message":"JWSError JWSInvalidSignature"}
对于 JWT-secret,我尝试了几个值,但似乎都不起作用。这包括来自 firebase 项目的“API 密钥”,以及尝试“生成密钥”,它下载一个新的 .json 文件,里面有一个“private_key”:沿着字符串。
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |