我已经为前端身份验证设置了Firebase,并将身份令牌(即JWT)发送到我的Phoenix后端。
现在我在尝试验证JWT时遇到了困难。
Google关于此事的说明在这里。简而言之,获取公开可访问的证书并使用它来验证JWT签名是否使用正确的私钥进行签名。
到目前为止,我已完成以下工作:
def verify(token) do
{:ok, resp} = HTTPoison.get(@cert_url)
%{body: body} = resp
body = Poison.Parser.parse!(body, %{})
{:ok, header} = Joken.peek_header(token)
cert = body[header["kid"]]
end
我有些迷茫。我需要将公共证书转换为公钥吗?如何创建使用RS256签名算法和公共证书的Joken.Signer?我也欢迎不使用Joken的解决方案。
谢谢!