Auth0 Errno::ECONNREFUSED (Failed to open TCP connection to :443

「Auth0 Errno::ECONNREFUSED (Failed to open TCP connection to :443」のアイキャッチ画像

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!!!

参考記事

Auth0 Ruby on Rails TCP Error

Rails5にAuth0を利用して認証機構を最速で追加して、爆速開発環境を構築していくぜ!

Building Secure APIs with Rails 6 and Auth0

Errno::ECONNREFUSED (Failed to open TCP connection to :80 – Authenticated requests fails