2016-12-23 17 views
3

私はphoenixアプリケーションでガーディアンを初めて設定しています。私はGuardian Configの秘密鍵でロードブロックを打っています。私は秘密鍵をどこに保管し、正確にそれを生成するかを理解していませんか?私は基本的にreadmeからコピーして貼り付けました。私はそれが正しいとは確信していませんが、私はこの問題に関する適切なドキュメントを見つけることができません。ここでは、データベースからユーザーとのセッションを作成しようとしたときに実行しようとしたことがあります。ここでガーディアン設定の秘密鍵を設定する - Phoenix

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 

適切なキーを生成する方法上の任意のヒント素晴らしいことだありがとうございました!

+0

で確認できます。「長い回答」の下に、豊富なドキュメントがあります。あなたのErlang/OTPバージョンは何ですか? P-521は、古いOTPリリースではサポートされていないアルゴリズムであるかもしれませんが(手がかりはありません)、いずれの場合でも異なるアルゴリズムで鍵を生成するのに十分な情報が必要です。 – cdegroot

答えて

5
  1. 実行JOSE.JWK.generate_key({:oct, 16}) |> JOSE.JWK.to_map |> elem(1)iex -S mix
  2. iexに入ると出力されるものをコピーします。
  3. コピーしたマップを、Guardian設定の下のsecret_keyキーに置き、もう一方のキーを持っています。

上記の例はオクテットです。 hexdocs.pm/jose/key-generationと鍵生成オプションの詳細は、https://github.com/ueberauth/guardian/issues/152

関連する問題