Auth0のチュートリアルにしたがって作成していたところタイトルのエラーが発生
サンプルのリポからcloneしても同じ内容だったので、おそらく設定などの不備があると思い調査
調査したところ以前作成したnestjsの設定と全く異なる部分がなかったので、とりあえずpryを入れて一つずつみて行った結果、envからデータを上手く撮れていないことが判明
def self.jwks_hash
    binding.pry
    # TODO, ここでエラー発生
    jwks_raw = Net::HTTP.get URI("https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json")
    jwks_keys = Array(JSON.parse(jwks_raw)['keys'])
    Hash[
        jwks_keys
            .map do |k|
          [
              k['kid'],
              OpenSSL::X509::Certificate.new(
                  Base64.decode64(k['x5c'].first)
              ).public_key
          ]
        end
    ]
  end
どうやらこの部分のenvがnilになっていて
jwks_raw = Net::HTTP.get URI("https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json")
、出力すると
ENV['AUTH0_DOMAIN']
=> nil
となっていました。
なのでdotenvの設定を修正
→gemがdotenv-railsではなくdotenvだったので変更したところ
"https://#{ENV['AUTH0_DOMAIN']}/.well-known/jwks.json"
=> 
"https://my-domain.auth0.com/.well-known/jwks.json"
このように表示されました。
そして、DOMAINが通ったところで問題なくリクエストが通りましt!!!
参考記事
Rails5にAuth0を利用して認証機構を最速で追加して、爆速開発環境を構築していくぜ!
Building Secure APIs with Rails 6 and Auth0
Errno::ECONNREFUSED (Failed to open TCP connection to :80 – Authenticated requests fails

コメントを残す