Elixir 为guardian配置设置密钥-Phoenix

Elixir 为guardian配置设置密钥-Phoenix,elixir,phoenix-framework,Elixir,Phoenix Framework,我第一次用phoenix应用程序设置guardian。我用守护者配置中的密钥遇到了一个路障。我不知道在哪里保存密钥以及如何准确生成密钥?我基本上是从自述文件中复制和粘贴的,我确信这是不正确的,但我似乎找不到关于这个问题的像样的文档。下面是我在尝试从数据库创建与用户的会话时遇到的问题 erlang错误:{:不受支持,[“p-521”,:HS512]} 这是我当前的配置文件,显然是错误的 config :guardian, Guardian, issuer: "PerriAir",

我第一次用phoenix应用程序设置guardian。我用守护者配置中的密钥遇到了一个路障。我不知道在哪里保存密钥以及如何准确生成密钥?我基本上是从自述文件中复制和粘贴的,我确信这是不正确的,但我似乎找不到关于这个问题的像样的文档。下面是我在尝试从数据库创建与用户的会话时遇到的问题

erlang错误:{:不受支持,[“p-521”,:HS512]}

这是我当前的配置文件,显然是错误的

    config :guardian, Guardian,
  issuer: "PerriAir",
  ttl: { 30, :days },
  verify_issuer: true, # optional
  secret_key:  %{
    "crv" => "P-521",
    "d" => "axDuTtGavPjnhlfnYAwkHa4qyfz2fdseppXEzmKpQyY0xd3bGpYLEF4ognDpRJm5IRaM31Id2NfEtDFw4iTbDSE",
    "kty" => "EC",
    "x" => "AL0H8OvP5NuboUoj8Pb3zpBcDyEJN907wMxrCy7H2062i3IRPF5NQ546jIJU3uQX5KN2QB_Cq6R_SUqyVZSNpIfC",
    "y" => "ALdxLuo6oKLoQ-xLSkShv_TA0di97I9V92sg1MKFava5hKGST1EKiVQnZMrN3HO8LtLT78SNTgwJSQHAXIUaA-lV"
  },
  serializer: PerriAir.GuardianSerializer
关于如何生成正确密钥的任何提示都将非常有用,谢谢

  • 使用
    iex-S mix进入
    iex
  • 运行
    JOSE.JWK.generate_key({:oct,16})|>JOSE.JWK.to_map |>elem(1)
    并复制输出的内容
  • 将复制的地图放入另一把钥匙所在的Guardian配置下的
    secret\u钥匙中
  • 上面的例子是八位组。您可以在中找到更多密钥类型,并在中找到密钥生成选项。

    签出-在“长答案”下有大量文档。您的Erlang/OTP版本是什么?P-521可能是较旧的OTP版本不支持的算法(我不知道),但在任何情况下,该问题都应该为您提供足够的信息,以便使用不同的算法生成密钥。