为监护人配置设置密钥 - Phoenix

时间:2016-12-23 16:02:39

标签: elixir phoenix-framework

我是第一次使用凤凰应用程序设置监护人。我正在使用Guardian Config中的密钥敲打路障。我不知道在哪里保密密钥以及如何生成密钥?我基本上是从自述文件中复制并粘贴的,我确信这不正确,但我似乎无法在这个问题上找到合适的文档。以下是我尝试与数据库中的用户创建会话时遇到的问题。

erlang error: {:not_supported, ["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

关于如何生成正确密钥的任何提示都会很棒谢谢!

1 个答案:

答案 0 :(得分:5)

  1. 使用iex
  2. 进入iex -S mix
  3. 运行JOSE.JWK.generate_key({:oct, 16}) |> JOSE.JWK.to_map |> elem(1)并复制输出的内容。
  4. 将复制的地图放在Guardian配置下的secret_key键下,其中您有另一把钥匙。
  5. 以上示例适用于八位字节。您可以在hexdocs.pm/jose/key-generation找到更多关键类型,在https://github.com/ueberauth/guardian/issues/152

    找到密钥生成选项