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

Bit*_*ise 3 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
Run Code Online (Sandbox Code Playgroud)

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

KA0*_*A01 5

  1. 进入iexiex -S mix
  2. 运行JOSE.JWK.generate_key({:oct, 16}) |> JOSE.JWK.to_map |> elem(1)并复制输出的内容.
  3. 将复制的地图放在secret_keyGuardian配置下的密钥中,其中有另一个密钥位于.

以上示例适用于八位字节.您可以在https://github.com/ueberauth/guardian/issues/152上的hexdocs.pm/jose/key-generation和密钥生成选项中找到更多密钥类型.